This commit is contained in:
Rodney, Tiara 2025-05-17 20:22:48 +02:00 committed by Tiara Rodney
commit 4cbe50253a
No known key found for this signature in database
GPG key ID: 5F43FAB4FBE5B5EB
36 changed files with 4073 additions and 0 deletions

109
bitbucket-pipelines.yml Normal file
View file

@ -0,0 +1,109 @@
image: administratrix/cicd:latest
definitions:
caches:
venv:
path: .venv
steps:
- step: &configure
name: configure
caches:
- venv
artifacts:
- config.log
- config.status
script:
- python3 -m venv --system-site-packages .venv
- .venv/bin/python3 -m pip install pipenv
- .venv/bin/python3 -m pipenv run sh configure
- step: &test-static
name: test-static
caches:
- venv
artifacts:
- test-reports/*
script:
- .venv/bin/python3 -m pipenv run make test-reports/static
- step: &test-unit
name: test-unit
caches:
- venv
artifacts:
- test-reports/*
script:
- .venv/bin/python3 -m pipenv run make test-reports/unit
- step: &test-integration
name: test-integration
caches:
- venv
artifacts:
- test-reports/*
script:
- .venv/bin/python3 -m pipenv run make test-reports/integration
- step: &doc
name: doc
caches:
- venv
artifacts:
- build/doc/**
script:
- make clean
- .venv/bin/python3 -m pipenv run make build/doc
- step: &dist
name: dist
caches:
- venv
artifacts:
- dist/*
script:
- make clean
- .venv/bin/python3 -m pipenv run make dist
- step: &chore
name: chore
caches:
- venv
artifacts:
- requirements.txt
- requirements-dev.txt
- Pipfile.lock
script:
- make clean
- .venv/bin/python3 -m pipenv run make chore
# TODO: this is good, but rather useless yet as the chore
# target only regenerates requirements.txt and
# requirements-dev.txt from Pipfile.lock, but it does not test
# the sync between Pipfile and Pipfile.lock, as the locking
# mechanism of pipenv currently is platform-dependent, i.e., it
# is not possible to define a minimum Python version and expect
# pipenv to find the right versions of dependencies compatible
# with all specified platforms.
# - git diff --exit-code
pipelines:
default:
- step: *configure
- parallel:
steps:
- step: *test-static
- step: *dist
branches:
dev:
- step: *configure
- parallel:
steps:
- step: *test-static
- step: *test-unit
- step: *test-integration
- parallel:
steps:
- step: *doc
- step: *dist
master:
- step: *configure
- parallel:
steps:
- step: *test-static
- step: *test-unit
- step: *test-integration
- parallel:
steps:
- step: *doc
- step: *dist