refactor: modernize python tooling #790
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
| on: ["push", "pull_request"] | |
| name: Test | |
| concurrency: | |
| # Cancel older, in-progress jobs from the same PR, same workflow. | |
| # use run_id if the job is triggered by a push to ensure | |
| # push-triggered jobs to not get canceled. | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| linting: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Dependencies | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: "3.10" | |
| - name: Sync Lint Dependencies | |
| run: uv sync --group lint | |
| - name: Run Ruff Lint | |
| run: uv run ruff check . | |
| - name: Run Ruff Format | |
| run: uv run ruff format --check . | |
| - name: Run mdformat | |
| run: uv run mdformat --check README.md CONTRIBUTING.md docs/userguides/*.md docs/methoddocs/*.md | |
| type-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Dependencies | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: "3.10" | |
| - name: Sync Dependencies | |
| run: uv sync --group lint --group test | |
| - name: Run MyPy | |
| run: uv run mypy . | |
| functional: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] # eventually add `windows-latest` | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| env: | |
| GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Foundry | |
| uses: foundry-rs/foundry-toolchain@v1 | |
| with: | |
| version: nightly | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Setup Ape | |
| uses: ApeWorX/github-action@v3 | |
| - name: Sync Test Dependencies | |
| run: uv sync --group test | |
| - name: Run Functional Tests | |
| env: | |
| APE_SAFE_GATEWAY_API_KEY: ${{ secrets.APE_SAFE_GATEWAY_API_KEY }} | |
| run: uv run ape test -n 0 tests/functional/ -s --cov -v WARNING | |
| - name: Run Integration Tests | |
| env: | |
| APE_SAFE_GATEWAY_API_KEY: ${{ secrets.APE_SAFE_GATEWAY_API_KEY }} | |
| run: uv run ape test -n 0 tests/integration/ -s --cov -v WARNING |