stages: - test - build pages: image: zoo.smok.co/build/build:latest stage: build script: - cd docs - make html - cd .. - mv docs/_build/html public artifacts: paths: - public .test: stage: test before_script: - pip install --break-system-packages --upgrade Cython setuptools pip coverage nose2 - pip install --break-system-packages -r requirements.txt script: - python setup.py install - cd example - python setup.py build_ext --inplace - nose2 -vv test_python35: extends: .test image: python:3.5 before_script: - pip install --upgrade Cython setuptools pip coverage nose2 - pip install -r requirements.txt test_python36: extends: .test image: python:3.6 before_script: - pip install --upgrade Cython setuptools pip coverage nose2 - pip install -r requirements.txt test_python37: extends: .test image: python:3.7 test_python38: extends: .test image: python:3.8 test_python39: extends: .test image: python:3.9 test_python310: extends: .test image: python:3.10 test_python311: extends: .test image: python:3.11 build_python: stage: build before_script: - pip install --break-system-packages --upgrade Cython setuptools pip twine script: - python setup.py bdist_wheel - mv dist/*.whl . artifacts: paths: - "*.whl" after_script: - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi *.whl only: - tags except: - branches