Files
esta-python-template/estaTektonPipeline.yaml
2025-10-11 17:03:02 +02:00

97 lines
4.1 KiB
YAML

# yaml-language-server: $schema=https://clew-resources.sbb-cloud.net/tekton-schema.json
productName: esta-python
pipelines:
# This is the continuous build pipeline which runs on every commit on a feature branch or if triggered in the tekton-ui.
- name: continuous
triggerType:
- GITEVENT
- USER
branchNamePrefixes:
- feature
- renovate
build: {}
tasks:
- name: pre-commit-run
# we are using a custom version of the esta-python build (see https://code.sbb.ch/projects/KD_ESTA/repos/esta-tekton-pipeline-templates/browse/tasks/esta-python-build.yaml)
# here, because we can't, and don't want to build a package (using `poetry build`) from this repository.
taskRef: esta-custom-exec
params:
RUN_IMAGE: esta.docker.bin.sbb.ch/esta/esta-tekton-pipeline-python-builderimage:latest
SCRIPT: |
apply-version python 3.12
eval "$(pyenv init -)"
# Suppress fatal: detected dubious ownership in repository
git config --global --add safe.directory $(workspaces.source.path)
poetry config virtualenvs.in-project false --local
poetry env use `pyenv version-name`
poetry install
# run code-quality check using pre-commit
poetry run pre-commit run --all-files
# This is the snapshot build pipeline which is triggered when pushing commits to main or if triggered in the tekton ui.
- name: snapshot
triggerType:
- USER
- GITEVENT
branchNamePrefixes:
- main
build: {}
tasks:
- name: pre-commit-run
# we are using a custom version of the esta-python build (see https://code.sbb.ch/projects/KD_ESTA/repos/esta-tekton-pipeline-templates/browse/tasks/esta-python-build.yaml)
# here, because we can't, and don't want to build a package (using `poetry build`) from this repository.
taskRef: esta-custom-exec
params:
RUN_IMAGE: esta.docker.bin.sbb.ch/esta/esta-tekton-pipeline-python-builderimage:latest
SCRIPT: |
apply-version python 3.12
eval "$(pyenv init -)"
# Suppress fatal: detected dubious ownership in repository
git config --global --add safe.directory $(workspaces.source.path)
poetry config virtualenvs.in-project false --local
poetry env use `pyenv version-name`
poetry install
# run code-quality check using pre-commit
poetry run pre-commit run --all-files
# The sync-to-esta-python task will render the copier template, create an automatic commit,
# and force-push changes to esta-python's main branch.
- name: sync-to-esta-python
taskRef: esta-custom-exec
params:
RUN_IMAGE: esta.docker.bin.sbb.ch/esta/esta-tekton-pipeline-python-builderimage:latest
SCRIPT: |
poetry config virtualenvs.in-project false --local
poetry env use `pyenv version-name`
poetry install
GIT_SSL_NO_VERIFY=true git clone https://code.sbb.ch/scm/kd_esta_blueprints/esta-python.git /tmp/esta-python
# Suppress fatal: detected dubious ownership in repository
git config --global --add safe.directory $(workspaces.source.path)
(cd /tmp/esta-python && git rm -r --ignore-unmatch '*')
poetry run copier copy --force \
--data project_name="ESTA Python" \
--data author_first_name="Your First Name" \
--data author_last_name="Your Last Name" \
--data bitbucket_organization=KD_ESTA_BLUEPRINTS \
--data pypi_repository="esta.pypi" \
--data docker_repository="esta.docker" \
--data helm_repository="esta.helm.local" \
. /tmp/esta-python/
cd /tmp/esta-python
git add -A
git config --global user.email "esta@sbb.ch"
git config --global user.name "esta-build-clew"
git commit --message "Automatic release commit." --allow-empty
git push --force origin