gerbonara/.gitlab-ci.yml

125 wiersze
3.1 KiB
YAML

variables:
GIT_SUBMODULE_STRATEGY: recursive
stages:
- build
- test
- docs
- publish
build:archlinux:
stage: build
image: "registry.gitlab.com/gerbolyze/build-containers/archlinux:latest"
variables:
GIT_SUBMODULE_STRATEGY: none
script:
- git config --global --add safe.directory "$CI_PROJECT_DIR"
- pip3 install --user wheel setuptools
- python3 setup.py sdist bdist_wheel
artifacts:
name: "gerbolyze-$CI_COMMIT_REF_NAME-gerbonara"
paths:
- dist/*
test:archlinux:
stage: test
image: "registry.gitlab.com/gerbolyze/build-containers/archlinux:latest"
script:
- pytest -o 'testpaths=gerbonara/tests' -o 'norecursedirs=*'
dependencies:
- build:archlinux
cache:
key: test-image-cache
paths:
- gerbonara/tests/image_cache/*.svg
- gerbonara/tests/image_cache/*.png
artifacts:
name: "gerbolyze-$CI_COMMIT_REF_NAME-gerbonara"
when: on_failure
paths:
- gerbonara_test_failures/*
test:ubuntu2204:
stage: test
image: "registry.gitlab.com/gerbolyze/build-containers/ubuntu:22.04"
script:
- python3 -m pip install pytest beautifulsoup4 pillow numpy slugify lxml click scipy
- python3 -m pytest -o 'testpaths=gerbonara/tests' -o 'norecursedirs=*'
dependencies:
- build:archlinux
cache:
key: test-image-cache
paths:
- gerbonara/tests/image_cache/*.svg
- gerbonara/tests/image_cache/*.png
artifacts:
name: "gerbolyze-$CI_COMMIT_REF_NAME-gerbonara"
when: on_failure
paths:
- gerbonara_test_failures/*
test:ubuntu2004:
stage: test
image: "registry.gitlab.com/gerbolyze/build-containers/ubuntu:20.04"
script:
- python3 -m pip install pytest beautifulsoup4 pillow numpy slugify lxml click scipy
- python3 -m pytest -o 'testpaths=gerbonara/tests' -o 'norecursedirs=*'
dependencies:
- build:archlinux
cache:
key: test-image-cache
paths:
- gerbonara/tests/image_cache/*.svg
- gerbonara/tests/image_cache/*.png
artifacts:
name: "gerbolyze-$CI_COMMIT_REF_NAME-gerbonara"
when: on_failure
paths:
- gerbonara_test_failures/*
docs:archlinux:
stage: test
image: "registry.gitlab.com/gerbolyze/build-containers/archlinux:latest"
script:
- git config --global --add safe.directory "$CI_PROJECT_DIR"
- sphinx-build -E docs docs/_build
dependencies:
- build:archlinux
artifacts:
name: "docs-gerbonara-$CI_COMMIT_REF_NAME"
paths:
- docs/_build
publish:gerbonara:
stage: publish
variables:
GIT_SUBMODULE_STRATEGY: none
image: "registry.gitlab.com/gerbolyze/build-containers/archlinux:latest"
cache: {}
script:
- export TWINE_USERNAME TWINE_PASSWORD
- pip3 install --user twine rich
- twine upload dist/*
dependencies:
- build:archlinux
only:
- /^v.*$/
pages:
stage: publish
variables:
GIT_SUBMODULE_STRATEGY: none
image: "registry.gitlab.com/gerbolyze/build-containers/archlinux:latest"
script:
- git config --global --add safe.directory "$CI_PROJECT_DIR"
- sphinx-build -E docs public
dependencies:
- build:archlinux
artifacts:
paths:
- public
only:
- /^v.*$/