name: CI on: push: branches: - main pull_request: workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: build: strategy: matrix: include: - runner: ubuntu-24.04-arm - runner: ubuntu-22.04-arm - runner: ubuntu-24.04 - runner: ubuntu-22.04 - runner: macos-15 - runner: macos-14 - runner: macos-13 - runner: windows-2025 - runner: windows-2022 - runner: windows-2019 python-version: "3.12" fail-fast: false runs-on: ${{ matrix.runner }} permissions: id-token: write attestations: write steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: astral-sh/setup-uv@v5 with: enable-cache: true - run: uv run --no-dev --group nuitka --frozen --python ${{ matrix.python-version || '3.13' }} python -m nuitka --mode=standalone --python-flag='-m' --assume-yes-for-downloads --deployment --lto=yes proxy_scraper_checker - run: mv config.toml proxy_scraper_checker.dist/ - if: ${{ github.event_name != 'pull_request' }} uses: actions/attest-build-provenance@v2 with: subject-path: proxy_scraper_checker.dist - uses: actions/upload-artifact@v4 with: name: artifact-${{ matrix.runner }} path: proxy_scraper_checker.dist/ if-no-files-found: error check: if: ${{ always() && github.event_name == 'pull_request' }} needs: - build - pre-commit runs-on: ubuntu-24.04 steps: - uses: re-actors/alls-green@release/v1 with: jobs: ${{ toJSON(needs) }} pre-commit: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: persist-credentials: false - uses: astral-sh/setup-uv@v5 with: enable-cache: false - run: uv tool run --from pre-commit@latest --with pre-commit-uv --no-cache --python 3.13 pre-commit run --all-files --show-diff-on-failure env: RUFF_OUTPUT_FORMAT: github