--- name: Lint on: push: branches: [main] pull_request: branches: [main] schedule: # * is a special character in YAML so you have to quote this string # Run at 1:00 every day - cron: 0 1 * * * permissions: {} jobs: build: strategy: matrix: python-version: ['3.14'] platform: [ubuntu-latest, windows-latest] hook-stage: [pre-commit, pre-push, manual] runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v7 with: persist-credentials: false - name: Install uv uses: astral-sh/setup-uv@v9.0.0 with: enable-cache: true cache-dependency-glob: '**/pyproject.toml' - name: Lint uses: j178/prek-action@v3.0.0 with: prek-version: 0.4.11 extra-args: >- --all-files --hook-stage ${{ matrix.hook-stage }} --verbose env: UV_NO_CACHE: '1' UV_PYTHON: ${{ matrix.python-version }} completion-lint: needs: build runs-on: ubuntu-latest if: always() # Run even if one matrix job fails steps: - name: Check matrix job status run: |- if ! ${{ needs.build.result == 'success' }}; then echo "One or more matrix jobs failed" exit 1 fi