P/frequency dependent sensitivity #1023
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
| name: CI | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| # Many color libraries just need this to be set to any value, but at least | |
| # one distinguishes color depth, where "3" -> "256-bit color". | |
| FORCE_COLOR: 3 | |
| jobs: | |
| check-commit-messages: | |
| name: Check commit messages | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Check all PR commits reference a GitHub issue | |
| env: | |
| BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
| HEAD_SHA: ${{ github.event.pull_request.head.sha }} | |
| run: | | |
| pattern='(#[0-9]+|github\.com/[^/]+/[^/]+/issues/[0-9]+|^Bump |^Merge |^Revert |^fixup! |^squash! |^amend! )' | |
| failed=0 | |
| for sha in $(git log --format="%H" "$BASE_SHA".."$HEAD_SHA"); do | |
| msg=$(git log -1 --format="%B" "$sha") | |
| first_line=$(git log -1 --format="%s" "$sha") | |
| if ! printf '%s\n' "$msg" | grep -qP "$pattern"; then | |
| echo "::error::Commit ${sha::7} missing issue reference: $first_line" | |
| failed=1 | |
| fi | |
| done | |
| if [ "$failed" -eq 1 ]; then | |
| echo "" | |
| echo "Every commit must reference a GitHub issue (e.g., #123 or full issue URL)." | |
| echo "Exceptions: Bump, Merge, Revert, fixup!, squash!, amend! commits." | |
| exit 1 | |
| fi | |
| pre-commit: | |
| name: Format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.x" | |
| - uses: pre-commit/action@v3.0.1 | |
| with: | |
| extra_args: --hook-stage manual --all-files | |
| - name: Run PyLint | |
| run: | | |
| echo "::add-matcher::$GITHUB_WORKSPACE/.github/matchers/pylint.json" | |
| pipx run nox -s pylint | |
| checks: | |
| name: Check Python ${{ matrix.python-version }} on ${{ matrix.runs-on }} | |
| runs-on: ${{ matrix.runs-on }} | |
| needs: [pre-commit] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.12"] | |
| runs-on: [ubuntu-latest, windows-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install system dependencies | |
| if: runner.os == 'macOS' | |
| run: brew install hdf5 fftw zlib libomp | |
| - name: Install package | |
| run: python -m pip install .[test] | |
| - name: Test package | |
| run: >- | |
| python -m pytest -ra --cov --cov-report=xml --cov-report=term | |
| --durations=20 | |
| - name: Upload coverage report | |
| uses: codecov/codecov-action@v6.0.0 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} |