cli: fix for Python 3.10 and 3.11 #72
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 | |
# GitHub events that triggers the workflow: | |
on: | |
push: | |
branches: ["main", "dev"] | |
pull_request: | |
branches: ["main", "dev"] | |
workflow_call: # to make the workflow triggerable from other workflows (publish.yaml) | |
# The workflow: | |
jobs: | |
lint: | |
name: Lint with Ruff (Py${{ matrix.python-version }}) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Lint with Ruff | |
run: | | |
pip install .[dev] | |
ruff --output-format=github . | |
continue-on-error: true | |
test: | |
name: Test with Py${{ matrix.python-version }} on ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu, windows, macos] | |
python-version: ["3.10", "3.11", "3.12"] | |
runs-on: ${{ matrix.os }}-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
pip install .[tests] | |
- name: Test with pytest | |
run: | | |
coverage run -m pytest tests/ | |
mv .coverage .coverage.${{ matrix.python-version }}.${{ matrix.os }} | |
- name: Store coverage files | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage | |
path: .coverage.${{ matrix.python-version }}.${{ matrix.os }} | |
report-coverage: | |
# Run only if the workflow was triggered by a push event | |
if: github.event_name == 'push' | |
name: Generate the coverage report | |
needs: [test] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.12" | |
- name: Download coverage files | |
uses: actions/download-artifact@v3 | |
with: | |
name: coverage | |
path: coverage | |
- name: Combine coverage files | |
run: | | |
pip install .[tests] | |
coverage combine coverage | |
coverage report | |
coverage html --show-contexts --title "RenderCV coverage for ${{ github.sha }}" | |
- name: Upload the coverage report to smokeshow | |
run: | | |
pip install smokeshow==0.4.0 | |
smokeshow upload ./htmlcov | |
env: | |
SMOKESHOW_GITHUB_STATUS_DESCRIPTION: Coverage {coverage-percentage} | |
SMOKESHOW_GITHUB_COVERAGE_THRESHOLD: 97 | |
SMOKESHOW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SMOKESHOW_GITHUB_PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }} |