Skip to content

Reacticate CI jobs after switch to pyproject and setuptools #185

Reacticate CI jobs after switch to pyproject and setuptools

Reacticate CI jobs after switch to pyproject and setuptools #185

Workflow file for this run

# WARNING: This workflow is deactivated until the gpg dependency problem from
# issue 1630 (see
# https://github.com/pazz/alot/issues/1630#issuecomment-1938174029 and
# onwards) is fixed. The problem was introduced in c1137ea9: the gpg
# dependency is required with version > 1.10.0 and such a version is not
# currently available on PyPI but must be build from hand.
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
# https://notmuchmail.org/releases/ notmuch-0.38.3.tar.xz
- 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 apt-rdepends
sudo apt-get install -y --no-install-recommends \
libgpgme-dev libxapian-dev libgmime-3.0-dev libtalloc-dev swig \
python3 python3-dev \
libpython3-all-dev python3-all-dev \
$(apt-rdepends python3-gpg | grep -v "^ " |grep -v debconf | grep -v pinentry)
env:
DEBIAN_FRONTEND: noninteractive
# - name: Update the gpg dependency in the pyproject file
# # 1.16 is the version of gpgme that is currently available in ubuntu-latest (currently 22.04)
# run: sed -i 's|gpg>1.10.0|gpg @ https://dev.gnupg.org/source/[email protected]|' pyproject.toml
#- name: Clone the gpgme repository
# run: git clone --depth 1 --branch gpgme-1.17.0 https://dev.gnupg.org/source/gpgme.git gpgme
#- name: Download gpgme
# run: |
# wget https://gnupg.org/ftp/gcrypt/gpgme/gpgme-$VERSION.tar.bz2 https://gnupg.org/ftp/gcrypt/gpgme/gpgme-$VERSION.tar.bz2.sig
# curl https://gnupg.org/signature_key.asc | gpg --import
# for k in BCEF7E294B092E28 528897B826403ADA 528897B826403ADA E98E9B2D19C6C8BD E98E9B2D19C6C8BD 549E695E905BA208 549E695E905BA208; do
# gpg -k $k
# done
# gpg --verify gpgme-$VERSION.tar.bz2.sig gpgme-$VERSION.tar.bz2
# tar -xf gpgme-$VERSION.tar.bz2
# mv gpgme-$VERSION gpgme
# env:
# VERSION: 1.19.0
#- name: Build the gpgme bindings
# run: |
# ls -l $(which -a python python3)
# set -e
# ./autogen.sh
# ./configure --enable-maintainer-mode --enable-languages=python
# make
# sudo make install
# working-directory: gpgme
# env:
# PYTHON: /usr/bin/python3
#- name: debug gpgme result
# run: find
# working-directory: gpgme
- name: clone the notmuch repository
run: git clone --depth 1 https://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: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install notmuch python bindings
run: pip install .
working-directory: notmuch/bindings/python-cffi
#- name: Install gpgme python bindings
# run: pip install .
# working-directory: gpgme/lang/python
- name: Install dependencies
run: |
sed -i /gpg/d pyproject.toml
pip install .
- name: Mock the gpg library
run: |
mkdir -p gpg/constants
echo from . import constants > gpg/__init__.py
echo from . import validity > gpg/constants/__init__.py
echo FULL = 4 > gpg/constants/validity.py
sed -i '/import unittest/araise unittest.SkipTest("gpg based test do not work in CI")\n' tests/test_crypto.py
sed -i 's/( *)def setUpClass.*/&\n\1 raise unittest.SkipTest("gpg based test do not work in CI")\n' tests/db/test_utils.py
- name: Run tests
run: python3 -m unittest --verbose