Skip to content

Merge pull request #31 from eth-library/chore/flake-modular-layout #65

Merge pull request #31 from eth-library/chore/flake-modular-layout

Merge pull request #31 from eth-library/chore/flake-modular-layout #65

Workflow file for this run

name: CI
on:
push:
pull_request:
branches: [main]
jobs:
lint:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/setup-nix-cache
with:
job-name: lint
- name: Run pre-commit
run: nix develop .#default --command pre-commit run --all-files --show-diff-on-failure
matrix:
name: Derive Python matrix
runs-on: ubuntu-24.04
outputs:
shells: ${{ steps.derive.outputs.shells }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/setup-nix-cache
with:
job-name: matrix
- name: Derive matrix from flake's exported shell list
id: derive
run: |
shells=$(nix eval --json .#lib.pythonShells)
echo "shells=${shells}" >> "$GITHUB_OUTPUT"
test:
needs: matrix
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
python: ${{ fromJson(needs.matrix.outputs.shells) }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/setup-nix-cache
with:
job-name: test-${{ matrix.python }}
- uses: ./.github/actions/setup-uv-cache
with:
python: ${{ matrix.python }}
- name: Sync dependencies
run: nix develop .#${{ matrix.python }} --command uv sync --frozen --extra test
- name: Run tests
run: nix develop .#${{ matrix.python }} --command uv run pytest