Integrate with Gramps' APIs instead of parsing Gramps XML #27084
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: | |
schedule: | |
- cron: '47 * * * *' | |
pull_request: | |
push: | |
branches: | |
- '[0-9].[0-9].x' | |
tags: | |
- '*' | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
# The number of builds that submit code coverage configured here MUST be identical | |
# to the number of `after_n_builds` in ./codecov.yml. | |
- name: 'Python 3.13' | |
os: ubuntu-latest | |
python: '3.13' | |
- name: 'Python 3.12' | |
os: ubuntu-latest | |
python: '3.12' | |
- name: 'Python 3.11' | |
os: ubuntu-latest | |
python: '3.11' | |
# @todo Temporarily disable testing on macOS and Windows until | |
# @todo https://github.com/gramps-project/gramps/pull/2016 has been merged. | |
# - name: 'macOS' | |
# os: macos-latest | |
# python: '3.13' | |
# - name: 'Windows' | |
# os: windows-latest | |
# python: '3.13' | |
timeout-minutes: 60 | |
steps: | |
- name: Check out the source code | |
uses: actions/checkout@v4 | |
- name: Get the pip cache directory | |
run: echo "pip_cache_dir=$(pip cache dir)" >> $GITHUB_ENV | |
shell: bash | |
- name: Cache pip | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.pip_cache_dir }} | |
key: pip-${{ runner.os }}-${{ matrix.python }}-${{ hashFiles('./pyproject.toml') }} | |
restore-keys: | | |
pip-${{ runner.os }}-${{ matrix.python }}- | |
- name: Get the npm cache directory | |
run: echo "npm_cache_dir=$(npm config get cache)" >> $GITHUB_ENV | |
shell: bash | |
- name: Cache npm | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.npm_cache_dir }} | |
key: npm-${{ runner.os }}-${{ hashFiles('./package.json') }} | |
restore-keys: | | |
npm-${{ runner.os }}- | |
- name: Cache Mypy | |
if: startsWith(runner.os, 'Linux') | |
uses: actions/cache@v4 | |
with: | |
path: ./.mypy_cache | |
key: mypy-${{ matrix.python }}-${{ hashFiles('./pyproject.toml') }} | |
restore-keys: | | |
mypy-${{ matrix.python }}- | |
- name: Set up Python ${{ matrix.python }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ./package.json | |
- name: Install APT dependencies | |
if: startsWith(runner.os, 'Linux') | |
run: sudo apt-get install gir1.2-gtk-4.0 libcairo2-dev libgirepository-2.0-dev poppler-utils | |
- name: Install Brew dependencies | |
if: startsWith(runner.os, 'macOS') | |
run: brew install poppler | |
- name: Install Scoop dependencies | |
if: startsWith(runner.os, 'Windows') | |
uses: MinoruSekine/setup-scoop@v4.0.1 | |
with: | |
apps: poppler | |
- name: Build the development environment | |
run: ./bin/build-ci | |
shell: bash | |
- name: Run the tests | |
if: startsWith(runner.os, 'Linux') | |
run: ./bin/test | |
shell: bash | |
- name: Run the tests | |
if: ${{ ! startsWith(runner.os, 'Linux') }} | |
run: ./bin/test | |
shell: bash | |
env: | |
BETTY_TEST_SKIP_SHELLCHECK: true | |
BETTY_TEST_SKIP_RUFF: true | |
BETTY_TEST_SKIP_MYPY: true | |
BETTY_TEST_SKIP_STYLELINT: true | |
BETTY_TEST_SKIP_ESLINT: true | |
BETTY_TEST_SKIP_PLAYWRIGHT: true | |
- name: Upload code coverage | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} |