stages: - test - build .test: stage: test script: - pip install --break-system-packages --upgrade Cython setuptools pip coverage nose2 - pip install --break-system-packages -r requirements.txt - python setup.py build_ext --inplace - python -m coverage run -m nose2 -vv -F - python -m coverage report variables: TESTING: "1" coverage: /TOTAL.*\s+(\d+\%)/ test_python310: extends: .test image: python:3.10 test_python311: extends: .test image: python:3.11