name: Continuous Integration on: push: workflow_dispatch: jobs: build-and-lint: name: Lint, Check & Test runs-on: nix steps: - name: Check out Repository uses: https://git.konstantinfickel.de/actions/checkout@v4 - run: nix --version - run: nix flake check - name: Install the project run: 'nix develop .#impure --command bash -c "uv sync --locked --all-extras"' - name: Check with Ruff run: 'nix develop .#impure --command bash -c "uv run ruff"' - name: Test with PyTest run: nix develop .#impure --command bash -c "uv run pytest --junit-xml test-report.xml" - name: Report test results uses: https://github.com/dorny/test-reporter.git@v2 if: ${{ !cancelled() }} with: name: PyTest Results path: test-report.xml reporter: java-junit - name: Check with PyRight run: nix develop .#impure --command bash -c "uv run pyright"