name: Lint and Format on: # Run on pushes to master and pushed tags, and on pull requests against master, but ignore the docs folder push: branches: [ master ] tags: - 'v*' paths: - '**' - '!docs/**' - '.github/**' pull_request: branches: [ master ] paths: - '**' - '!docs/**' - '.github/**' merge_group: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true jobs: wpiformat: name: "wpiformat" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Fetch all history and metadata run: | git fetch --prune --unshallow git checkout -b pr git branch -f master origin/master - name: Set up Python 3.8 uses: actions/setup-python@v4 with: python-version: 3.11 - name: Install wpiformat run: pip3 install wpiformat==2024.45 - name: Run run: wpiformat - name: Check output run: git --no-pager diff --exit-code HEAD - name: Generate diff run: git diff HEAD > wpiformat-fixes.patch if: ${{ failure() }} - uses: actions/upload-artifact@v4 with: name: wpiformat fixes path: wpiformat-fixes.patch if: ${{ failure() }} javaformat: name: "Java Formatting" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-java@v4 with: java-version: 17 distribution: temurin - run: ./gradlew spotlessCheck name: Run spotless client-lint-format: name: "PhotonClient Lint and Formatting" defaults: run: working-directory: photon-client runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 18 - name: Install Dependencies run: npm ci - name: Check Linting run: npm run lint-ci - name: Check Formatting run: npm run format-ci server-index: name: "Check server index.html not changed" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Fetch all history and metadata run: | git fetch --prune --unshallow git checkout -b pr git branch -f master origin/master - name: Check index.html not changed run: git --no-pager diff --exit-code origin/master photon-server/src/main/resources/web/index.html