excuse type checking specific code from coverage #514
Workflow file for this run
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: Test | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| merge_group: | |
| workflow_call: | |
| secrets: | |
| CODECOV_TOKEN: | |
| required: true | |
| workflow_dispatch: | |
| inputs: | |
| debug: | |
| description: 'Open ssh debug session.' | |
| required: true | |
| default: false | |
| type: boolean | |
| clear_cache: | |
| description: 'Clear GitHub Actions cache.' | |
| required: true | |
| default: false | |
| type: boolean | |
| jobs: | |
| linux: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| actions: write | |
| strategy: | |
| matrix: | |
| python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] | |
| env: | |
| COVERAGE_FILE: linux-py${{ matrix.python-version }}.coverage | |
| steps: | |
| - name: Clear GitHub Actions cache | |
| if: ${{ github.event.inputs.clear_cache == 'true' }} | |
| run: sudo rm -rf /opt/hostedtoolcache | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd | |
| with: | |
| persist-credentials: false | |
| - name: Set up Python ${{ matrix.python-version }} | |
| id: sp | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install Just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b | |
| with: | |
| enable-cache: true | |
| - name: Install Emacs | |
| if: ${{ github.event.inputs.debug == 'true' }} | |
| run: | | |
| sudo apt install emacs | |
| - name: Setup tmate session | |
| if: ${{ github.event.inputs.debug == 'true' }} | |
| uses: mxschmitt/action-tmate@c0afd6f790e3a5564914980036ebf83216678101 | |
| with: | |
| detached: true | |
| - name: Install Dependencies | |
| env: | |
| PYTHON_PATH: ${{ steps.sp.outputs.python-path }} | |
| run: | | |
| just setup "$PYTHON_PATH" | |
| - name: Run Unit Tests | |
| run: | | |
| just test | |
| - name: Store coverage files | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f | |
| with: | |
| name: ${{ env.COVERAGE_FILE }} | |
| path: ${{ env.COVERAGE_FILE }} | |
| macos: | |
| runs-on: macos-latest | |
| permissions: | |
| contents: read | |
| actions: write | |
| strategy: | |
| matrix: | |
| python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] | |
| env: | |
| COVERAGE_FILE: macos-py${{ matrix.python-version }}.coverage | |
| steps: | |
| - name: Clear GitHub Actions cache | |
| if: ${{ github.event.inputs.clear_cache == 'true' }} | |
| run: sudo rm -rf /Users/runner/hostedtoolcache | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd | |
| with: | |
| persist-credentials: false | |
| - name: Set up Python ${{ matrix.python-version }} | |
| id: sp | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install Just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b | |
| with: | |
| enable-cache: true | |
| - name: install-emacs-macos | |
| if: ${{ github.event.inputs.debug == 'true' }} | |
| run: | | |
| brew install emacs | |
| - name: Setup tmate session | |
| if: ${{ github.event.inputs.debug == 'true' }} | |
| uses: mxschmitt/action-tmate@c0afd6f790e3a5564914980036ebf83216678101 | |
| with: | |
| detached: true | |
| - name: Install Dependencies | |
| env: | |
| PYTHON_PATH: ${{ steps.sp.outputs.python-path }} | |
| run: | | |
| just setup "$PYTHON_PATH" | |
| - name: Run Unit Tests | |
| run: | | |
| just test | |
| - name: Store coverage files | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f | |
| with: | |
| name: ${{ env.COVERAGE_FILE }} | |
| path: ${{ env.COVERAGE_FILE }} | |
| windows: | |
| runs-on: windows-latest | |
| permissions: | |
| contents: read | |
| actions: write | |
| strategy: | |
| matrix: | |
| python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] | |
| env: | |
| COVERAGE_FILE: windows-py${{ matrix.python-version }}.coverage | |
| steps: | |
| - name: Clear GitHub Actions cache | |
| if: ${{ github.event.inputs.clear_cache == 'true' }} | |
| run: Remove-Item -Recurse -Force C:\hostedtoolcache | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd | |
| with: | |
| persist-credentials: false | |
| - name: Set up Python ${{ matrix.python-version }} | |
| id: sp | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install Just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b | |
| with: | |
| enable-cache: true | |
| - name: install-vim-windows | |
| if: ${{ github.event.inputs.debug == 'true' }} | |
| uses: rhysd/action-setup-vim@19e3dd31a84dbc2c5445d65e9b363f616cab96c1 | |
| - name: Setup tmate session | |
| if: ${{ github.event.inputs.debug == 'true' }} | |
| uses: mxschmitt/action-tmate@c0afd6f790e3a5564914980036ebf83216678101 | |
| with: | |
| detached: true | |
| - name: Install Dependencies | |
| env: | |
| PYTHON_PATH: ${{ steps.sp.outputs.python-path }} | |
| run: | | |
| just setup "$env:PYTHON_PATH" | |
| - name: Run Unit Tests | |
| run: | | |
| just test | |
| - name: Store coverage files | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f | |
| with: | |
| name: ${{ env.COVERAGE_FILE }} | |
| path: ${{ env.COVERAGE_FILE }} | |
| coverage-combine: | |
| needs: [linux, macos, windows] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 | |
| id: sp | |
| with: | |
| python-version: '3.14' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b | |
| with: | |
| enable-cache: true | |
| - name: Setup Just | |
| uses: extractions/setup-just@e33e0265a09d6d736e2ee1e0eb685ef1de4669ff | |
| - name: Install Release Dependencies | |
| env: | |
| PYTHON_PATH: ${{ steps.sp.outputs.python-path }} | |
| run: | | |
| just setup "$PYTHON_PATH" | |
| - name: Get coverage files | |
| uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 | |
| with: | |
| pattern: "*.coverage" | |
| merge-multiple: true | |
| - run: ls -la *.coverage | |
| - run: just coverage | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| file: ./coverage.xml |