#31 Clean up test case and coverage #103
Workflow file for this run
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
# Continuous integration build for check-done. | |
name: Build | |
on: [push, pull_request] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.11", "3.12", "3.13"] | |
env: | |
MAIN_PYTHON_VERSION: "3.12" # same as Ubuntu 24 LTS | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
run: | | |
poetry install --no-interaction | |
- name: Build check-done package | |
run: | | |
poetry build | |
- name: Run the test suite | |
env: | |
CHECK_DONE_GITHUB_PROJECT_URL: ${{ secrets.CHECK_DONE_GITHUB_PROJECT_URL }} | |
CHECK_DONE_GITHUB_APP_ID: ${{ secrets.CHECK_DONE_GITHUB_APP_ID }} | |
CHECK_DONE_GITHUB_APP_PRIVATE_KEY: | | |
${{ secrets.CHECK_DONE_GITHUB_APP_PRIVATE_KEY }} | |
CHECK_DONE_GITHUB_PROJECT_STATUS_NAME_TO_CHECK: ${{ secrets.CHECK_DONE_GITHUB_PROJECT_STATUS_NAME_TO_CHECK }} | |
CHECK_DONE_PERSONAL_ACCESS_TOKEN: ${{ secrets.CHECK_DONE_PERSONAL_ACCESS_TOKEN }} | |
CHECK_DONE_USER_GITHUB_PROJECT_URL: ${{ secrets.CHECK_DONE_USER_GITHUB_PROJECT_URL }} | |
run: | | |
poetry run pytest --cov=check_done --cov-branch --cov-report=xml | |
- name: Upload coverage reports to Codecov | |
if: ${{ matrix.python-version == env.MAIN_PYTHON_VERSION }} | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
check-style: | |
runs-on: ubuntu-latest | |
# Disable pre-commit check on main and production to prevent | |
# pull request merges to fail with don't commit to branch. | |
if: github.ref != 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install pre-commit | |
run: | | |
sudo apt-get install python3 python3-pip | |
pip install pre-commit | |
- name: Load cached pre-commit | |
id: cached-pre-commit | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pre-commit | |
key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }} | |
- name: Install pre-commit hooks | |
if: steps.cached-pre-commit.outputs.cache-hit != 'true' | |
run: pre-commit install --install-hooks | |
- name: Check coding style | |
run: pre-commit run --all-files |