TypeCheck Frontend #6313
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Lint and Format | |
| on: | |
| # Run on pushes to main and pushed tags, and on pull requests against main, but ignore the docs folder | |
| push: | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| validation: | |
| name: "Validation" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: gradle/actions/wrapper-validation@v5 | |
| wpiformat: | |
| name: "wpiformat" | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Fetch all history and metadata | |
| run: | | |
| git fetch --prune --unshallow | |
| git checkout -b pr | |
| git branch -f main origin/main | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.14 | |
| - name: Install wpiformat | |
| run: pip3 install wpiformat==2025.79 | |
| - name: Run | |
| run: wpiformat | |
| - name: Check output | |
| run: | | |
| set +e | |
| git --no-pager diff --exit-code HEAD | |
| exit_code=$? | |
| if test "$exit_code" -ne "0"; then | |
| echo "::error ::Linting failed. See https://docs.photonvision.org/en/latest/docs/contributing/linting.html" | |
| exit $exit_code | |
| fi | |
| - name: Generate diff | |
| run: git diff HEAD > wpiformat-fixes.patch | |
| if: ${{ failure() }} | |
| - uses: actions/upload-artifact@v6 | |
| with: | |
| name: wpiformat fixes | |
| path: wpiformat-fixes.patch | |
| if: ${{ failure() }} | |
| javaformat: | |
| name: "Java Formatting" | |
| needs: [validation] | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| java-version: 17 | |
| distribution: temurin | |
| - run: | | |
| set +e | |
| ./gradlew spotlessCheck | |
| exit_code=$? | |
| if test "$exit_code" -ne "0"; then | |
| echo "::error ::Linting failed. See https://docs.photonvision.org/en/latest/docs/contributing/linting.html" | |
| exit $exit_code | |
| fi | |
| name: Run spotless | |
| client-lint-format: | |
| name: "PhotonClient Lint and Formatting" | |
| defaults: | |
| run: | |
| working-directory: photon-client | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| cache-dependency-path: photon-client/pnpm-lock.yaml | |
| - name: Install Dependencies | |
| run: pnpm i --frozen-lockfile | |
| - name: Check Linting | |
| run: | | |
| set +e | |
| pnpm run lint-ci | |
| exit_code=$? | |
| if test "$exit_code" -ne "0"; then | |
| echo "::error ::Linting failed. See https://docs.photonvision.org/en/latest/docs/contributing/linting.html" | |
| exit $exit_code | |
| fi | |
| - name: Check Formatting | |
| run: | | |
| set +e | |
| pnpm run format-ci | |
| exit_code=$? | |
| if test "$exit_code" -ne "0"; then | |
| echo "::error ::Linting failed. See https://docs.photonvision.org/en/latest/docs/contributing/linting.html" | |
| exit $exit_code | |
| fi |