CI: Generic multi-vector test value generator #82
This file contains 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 | |
on: | |
# Trigger the workflow on push or pull request | |
push: | |
branches: [main, '**-test'] | |
pull_request: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
name: "lint / spelling" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.13 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13" | |
- run: python -m pip install --upgrade pip numpy pylint[spelling] | |
- name: Run lint / spelling | |
shell: pwsh | |
run: | | |
echo '```plaintext' >> $env:GITHUB_STEP_SUMMARY | |
pylint --spelling-dict=en_US ./micro_ga | Tee-Object -FilePath $env:GITHUB_STEP_SUMMARY -Append | |
echo '```' >> $env:GITHUB_STEP_SUMMARY | |
exit $LASTEXITCODE | |
build: | |
name: ${{ matrix.os }} Python ${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["windows-latest", "ubuntu-latest"] | |
python-version: ["3.11", "3.13"] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install .[dev] | |
- run: pytest --cov=. --cov-branch | |
- name: Upload coverage artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'coverage-${{ runner.os }}-py${{ matrix.python-version }}' | |
include-hidden-files: true | |
path: './.coverage' | |
coverage: | |
needs: build | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: pwsh | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install coverage tool | |
run: python -m pip install --upgrade pip coverage | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: './cov_data' | |
- name: Combine coverage data | |
run: | | |
$cov_files = Get-ChildItem -Recurse -Force -Path './cov_data/coverage-${{ runner.os }}*/.coverage' | |
coverage combine $cov_files | |
- name: Report coverage | |
run: coverage report --format=markdown | Tee-Object -FilePath $env:GITHUB_STEP_SUMMARY -Append |