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 --break-system-packages wheel setuptools - python3 setup.py sdist bdist_wheel artifacts: name: "gerbolyze-$CI_COMMIT_REF_NAME-gerbonara" paths: - dist/* # FIXME: disable tests since (a) currenty kicad-cli is broken (aborts on start), and the workaround of using an older # version from the KiCad project's kicad-cli containers does not work in gitlab CI. Pain. #test:archlinux: # stage: test # image: "registry.gitlab.com/gerbolyze/build-containers/archlinux:latest" # script: # - git clone --depth 1 https://gitlab.com/kicad/libraries/kicad-symbols # - git clone --depth 1 https://gitlab.com/kicad/libraries/kicad-footprints # - env KICAD_SYMBOLS=kicad-symbols KICAD_FOOTPRINTS=kicad-footprints 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:ubuntu-rolling: # stage: test # image: "registry.gitlab.com/gerbolyze/build-containers/ubuntu:rolling" # script: # - python3 -m pip install --break-system-packages pytest beautifulsoup4 pillow numpy slugify lxml click scipy # - git clone --depth 1 https://gitlab.com/kicad/libraries/kicad-symbols # - git clone --depth 1 https://gitlab.com/kicad/libraries/kicad-footprints # - env KICAD_SYMBOLS=kicad-symbols KICAD_FOOTPRINTS=kicad-footprints 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 --break-system-packages 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.*$/