50 lines
1.2 KiB
YAML
50 lines
1.2 KiB
YAML
precommit:
|
|
stage: test
|
|
image: python:3.12-bookworm
|
|
before_script:
|
|
- apt-get update && apt-get install -y --no-install-recommends git
|
|
script:
|
|
- pip install -r requirements.precommit.txt
|
|
- pre-commit run --all-files
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
|
|
.test_template: &test_template
|
|
stage: test
|
|
script:
|
|
- pip install poetry
|
|
- poetry install
|
|
- source `poetry env info --path`/bin/activate
|
|
- python -m pytest
|
|
|
|
test python3.10:
|
|
<<: *test_template
|
|
image: python:3.10-slim
|
|
|
|
test python3.11:
|
|
<<: *test_template
|
|
image: python:3.11-slim
|
|
|
|
test python3.12:
|
|
<<: *test_template
|
|
image: python:3.12-slim
|
|
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
|
|
artifacts:
|
|
reports:
|
|
coverage_report:
|
|
coverage_format: cobertura
|
|
path: coverage.xml
|
|
|
|
release:
|
|
stage: build
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
script:
|
|
- pip install poetry
|
|
- poetry build
|
|
- poetry config repositories.gitlab "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi"
|
|
- poetry config http-basic.gitlab gitlab-ci-token "$CI_JOB_TOKEN"
|
|
- poetry publish --repository gitlab
|
|
|
|
include:
|
|
- template: Jobs/SAST.gitlab-ci.yml
|