kupferbootstrap/.gitlab-ci.yml

94 lines
2.3 KiB
YAML
Raw Normal View History

stages:
- check
- build
2022-06-24 01:43:34 +00:00
- deploy
format:
stage: check
image: python
before_script:
- pip install yapf autoflake
script:
- ./format.sh --check
2022-02-18 06:42:25 +01:00
typecheck:
stage: check
image: python
before_script:
- pip install mypy
script:
- ./typecheck.sh --non-interactive --junit-xml mypy-report.xml
artifacts:
reports:
junit: mypy-report.xml
2022-08-15 19:53:08 +02:00
pytest:
stage: check
image: archlinux
before_script:
- pacman -Sy --noconfirm --needed archlinux-keyring && pacman -Su --noconfirm python python-pip sudo git base-devel arch-install-scripts rsync
- pip install -r test_requirements.txt -r requirements.txt
- 'echo "kupfer ALL = (ALL) NOPASSWD: ALL" > /etc/sudoers.d/kupfer_all'
- useradd -m kupfer
- chmod 777 .
2022-08-15 19:53:08 +02:00
script:
- script -e -c 'su kupfer -s /bin/bash -c "INTEGRATION_TESTS_USE_GLOBAL_CONFIG=TRUE KUPFERBOOTSTRAP_WRAPPED=DOCKER ./pytest.sh --junit-xml=pytest-report.xml --cov-report=xml:coverage.xml integration_tests.py"'
2022-08-20 05:59:31 +02:00
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
2022-08-15 19:53:08 +02:00
artifacts:
reports:
junit: pytest-report.xml
2022-08-20 05:59:31 +02:00
coverage_report:
coverage_format: cobertura
path: coverage.xml
build_docker:
stage: build
image: docker:latest
services: ['docker:dind']
variables:
DOCKER_DRIVER: vfs # overlay2 is not available on ZFS
DOCKER_TLS_CERTDIR: ""
script:
- 'docker build --pull -t "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}" -t "${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_SLUG}" .'
only:
- branches
except:
- main
- dev
push_docker:
extends: build_docker
before_script:
- echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
script:
- !reference [build_docker, script]
- if [[ "$CI_COMMIT_REF_NAME" == "main" ]]; then docker image tag "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHA}" "${CI_REGISTRY_IMAGE}:latest"; fi
- docker push -a "${CI_REGISTRY_IMAGE}"
only:
- main
- dev
except:
2022-06-24 01:43:34 +00:00
.docs:
image: "${CI_REGISTRY_IMAGE}:dev"
before_script:
- pip install -r requirements.txt -r docs/requirements.txt
2022-06-24 01:43:34 +00:00
script:
- (cd docs && SPHINXARGS='-W' make)
2022-06-24 01:43:34 +00:00
- mv docs/html public
artifacts:
paths:
- public
build_docs:
stage: build
extends: .docs
except:
- main
2022-06-24 01:43:34 +00:00
pages:
stage: deploy
extends: .docs
only:
- main