Fix a bug where cancelling site generation in the Graphical User Interface would cause a fatal error #13959
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
name: Test | |
on: | |
schedule: | |
- cron: '0 * * * *' | |
pull_request: | |
push: | |
branches: | |
- '[0-9].[0-9].x' | |
tags: | |
- '*' | |
jobs: | |
build: | |
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 /home/bart/code/bartfeenstra/betty/codecov.yml. | |
- name: 'Python 3.12' | |
os: ubuntu-latest | |
python: '3.12' | |
- name: 'Python 3.11' | |
os: ubuntu-latest | |
python: '3.11' | |
- name: 'macOS' | |
os: macos-latest | |
python: '3.12' | |
- name: 'Windows' | |
os: windows-latest | |
python: '3.12' | |
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('./setup.py') }} | |
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('./setup.py') }} | |
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 | |
- name: Install APT dependencies | |
if: startsWith(runner.os, 'Linux') | |
run: | | |
sudo apt-get update | |
apt_packages=( | |
libasound2 # For Cypress | |
libegl1-mesa # For Qt | |
libgbm-dev # For Cypress | |
libgconf-2-4 # For Cypress | |
libgtk2.0-0 # For Cypress | |
libgtk-3-0 # For Cypress | |
libnotify-dev # For Cypress | |
libnss3 # For Cypress | |
libx11-xcb-dev # For Qt | |
'^libxcb.*-dev' # For Qt | |
libxkbcommon-x11-0 # For Qt | |
libxss1 # For Cypress | |
libxtst6 # For Cypress | |
xauth # For Cypress | |
xvfb # For Cypress and pytest-xvfb | |
) | |
sudo apt-get install "${apt_packages[@]}" | |
- name: Instlal Lua | |
if: startsWith(runner.os, 'Linux') | |
uses: leafo/gh-actions-lua@v10 | |
- name: Install LuaRocks | |
if: startsWith(runner.os, 'Linux') | |
uses: leafo/gh-actions-luarocks@v4 | |
- name: Install Lua dependencies | |
if: startsWith(runner.os, 'Linux') | |
run: luarocks install busted | |
- name: Build the development environment | |
run: ./bin/build-ci | |
shell: bash | |
- name: Get the Cypress cache directory | |
if: startsWith(runner.os, 'Linux') | |
run: echo "cypress_cache_dir=$(./node_modules/.bin/cypress cache path)" >> $GITHUB_ENV | |
shell: bash | |
- name: Cache Cypress | |
if: startsWith(runner.os, 'Linux') | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.cypress_cache_dir }} | |
key: cypress-${{ runner.os }}-${{ hashFiles('./package.json') }} | |
restore-keys: | | |
cypress- | |
- name: Run the tests | |
if: startsWith(runner.os, 'Linux') | |
run: BETTY_TEST_SKIP_PYINSTALLER=true ./bin/test | |
shell: bash | |
- name: Run the tests | |
if: ${{ ! startsWith(runner.os, 'Linux') }} | |
run: BETTY_TEST_SKIP_SHELLCHECK=true BETTY_TEST_SKIP_FLAKE8=true BETTY_TEST_SKIP_MYPY=true BETTY_TEST_SKIP_STYLELINT=true BETTY_TEST_SKIP_ESLINT=true BETTY_TEST_SKIP_BUSTED=true BETTY_TEST_SKIP_CYPRESS=true BETTY_TEST_SKIP_PYINSTALLER=true ./bin/test | |
shell: bash | |
- name: Upload code coverage | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} |