Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

tests

tests #833

Workflow file for this run

name: tests
permissions:
contents: read
on:
push:
branches:
- main
pull_request:
schedule:
- cron: '0 8 * * *'
jobs:
test:
strategy:
fail-fast: false
matrix:
python-version: ["3.14", "3.13", "3.12"]
os: [ubuntu-latest, macos-latest] # TODO: windows-latest
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
run: |
echo $GITHUB_REF $GITHUB_SHA
git clone https://github.com/$GITHUB_REPOSITORY.git .
git fetch origin $GITHUB_SHA:temporary-ci-branch
git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
- name: 'Set up Python ${{ matrix.python-version }}'
uses: actions/setup-python@main
# https://github.com/marketplace/actions/setup-python
with:
python-version: '${{ matrix.python-version }}'
cache: 'pip' # caching pip dependencies
cache-dependency-path: '**/requirements.*.txt'
- name: Install uv and set the Python version
# https://docs.astral.sh/uv/guides/integration/github/#multiple-python-versions
uses: astral-sh/setup-uv@main
with:
python-version: ${{ matrix.python-version }}
- name: 'Bootstrap app venv'
# The first CLI call will create the .venv
run: |
./cli.py version
- name: 'app CLI help'
run: |
./cli.py --help
- name: Cache ROMs
id: cache-roms
uses: actions/cache@main
# https://github.com/marketplace/actions/cache
with:
path: roms
key: cache-roms
- name: 'Download ROMs'
run: |
./cli.py download-roms
- name: 'Bootstrap dev venv'
# The first CLI call will create the .venv
run: |
./dev-cli.py version
- name: 'dev CLI help'
run: |
./dev-cli.py --help
- name: 'Run pip-audit'
run: |
./dev-cli.py pip-audit
- name: 'Run tests with Python v${{ matrix.python-version }}'
env:
PYTHONUNBUFFERED: 1
PYTHONWARNINGS: always
run: |
./dev-cli.py coverage
- name: 'Upload coverage report'
uses: codecov/codecov-action@main
# https://github.com/marketplace/actions/codecov
with:
# https://docs.codecov.com/docs/codecov-tokens#example-github-actions--official-codecov-action
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
verbose: true