Add github action to check the nix build #132
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: Run tests | |
on: | |
- push | |
- pull_request | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies for the gpg and notmuch python package | |
run: | | |
set -e | |
sudo apt-get update | |
sudo apt-get install -y --no-install-recommends \ | |
libgpgme-dev libxapian-dev libgmime-3.0-dev libtalloc-dev swig | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
- name: clone the notmuch repository | |
run: git clone --depth 1 git://notmuchmail.org/git/notmuch notmuch | |
- name: build the notmuch bindings | |
run: | | |
set -e | |
# Make and install the library. | |
./configure --without-bash-completion \ | |
--without-api-docs \ | |
--without-emacs \ | |
--without-desktop \ | |
--without-ruby \ | |
--without-zsh-completion | |
make | |
sudo make install | |
working-directory: notmuch | |
- name: Install notmuch python bindings | |
run: pip install . | |
working-directory: notmuch/bindings/python-cffi | |
- name: Install dependencies | |
run: pip install . | |
# These tests seem to fail on github's CI, we should fix these tests in | |
# some less hacky way | |
- name: disable some tests that don't work in CI | |
run: > | |
sed -Ei | |
-e '1iimport unittest' | |
-e 's/^(\s*)(async )?def test_(no_spawn_no_stdin_attached|save_named_query|parsing_notmuch_config_with_non_bool_synchronize_flag_fails)/\1@unittest.skip("broken in ci")\n&/' | |
tests/commands/test_global.py | |
tests/db/test_manager.py | |
tests/settings/test_manager.py | |
- name: Run tests | |
run: python3 -m unittest --verbose |