charts/pipelines-library/templates/pipelines/_common_python.yaml (269 lines of code) (raw):
{{- define "python-build-common" -}}
- name: build
taskRef:
kind: Task
name: python
runAfter:
- update-build-number
- get-cache
params:
- name: BASE_IMAGE
value: $(params.image)
- name: EXTRA_COMMANDS
value: |
# we checkout the source code in the /source directory
# and hold cache in the /cache directory
python setup.py clean build install --user
workspaces:
- name: source
workspace: shared-workspace
- name: sonar
taskRef:
kind: Task
name: sonarqube-general
runAfter:
- build
params:
- name: SONAR_PROJECT_KEY
value: $(params.CODEBASE_NAME)
- name: SONAR_PROJECT_NAME
value: $(params.CODEBASE_NAME)
- name: branch
value: $(params.git-source-revision)
workspaces:
- name: source
workspace: shared-workspace
subPath: source
- name: push
taskRef:
kind: Task
name: python
runAfter:
- sonar
params:
- name: BASE_IMAGE
value: 'python:3.8-slim'
- name: EXTRA_COMMANDS
value: |
pip install -r requirements.txt
python setup.py sdist
# Get package version from the get-version task
versionLowerCase=$(echo $(tasks.get-version.results.VERSION) | tr '[:upper:]' '[:lower:]')
# # Define a repository for publishing the package
if echo "$versionLowerCase" | grep -q "snapshot"; then
TWINE_REPOSITORY_URL="${REPOSITORY_URL_SNAPSHOTS}"
else
TWINE_REPOSITORY_URL="${REPOSITORY_URL_RELEASES}"
fi
echo "[TEKTON][INFO] TWINE_REPOSITORY_URL contains ${TWINE_REPOSITORY_URL}"
twine upload dist/*
workspaces:
- name: source
workspace: shared-workspace
{{- end -}}
{{- define "python-review-gerrit-common" -}}
- name: build
taskRef:
kind: Task
name: python
runAfter:
- init-values
params:
- name: BASE_IMAGE
value: $(params.image)
- name: EXTRA_COMMANDS
value: |
# we checkout the source code in the /source directory
# and hold cache in the /cache directory
python setup.py clean build install --user
pip3 install .
[ -f run_service.py ] && python run_service.py &
python setup.py pytest
workspaces:
- name: source
workspace: shared-workspace
- name: sonar
taskRef:
kind: Task
name: sonarqube-general
runAfter:
- build
params:
- name: SONAR_PROJECT_KEY
value: $(params.CODEBASE_NAME)
- name: SONAR_PROJECT_NAME
value: $(params.CODEBASE_NAME)
- name: target-branch
value: $(params.targetBranch)
- name: source-branch
value: $(params.git-refspec)
- name: key-id
value: $(params.changeNumber)
workspaces:
- name: source
workspace: shared-workspace
subPath: source
{{- end -}}
{{- define "python-review-common" -}}
- name: build
taskRef:
kind: Task
name: python
runAfter:
- init-values
params:
- name: BASE_IMAGE
value: $(params.image)
- name: EXTRA_COMMANDS
value: |
# we checkout the source code in the /source directory
# and hold cache in the /cache directory
python setup.py clean build install --user
pip3 install .
[ -f run_service.py ] && python run_service.py &
python setup.py pytest
workspaces:
- name: source
workspace: shared-workspace
- name: sonar
taskRef:
kind: Task
name: sonarqube-general
runAfter:
- build
params:
- name: SONAR_PROJECT_KEY
value: $(params.CODEBASE_NAME)
- name: SONAR_PROJECT_NAME
value: $(params.CODEBASE_NAME)
- name: target-branch
value: $(params.targetBranch)
- name: source-branch
value: $(params.git-source-revision)
- name: key-id
value: $(params.changeNumber)
workspaces:
- name: source
workspace: shared-workspace
subPath: source
{{- end -}}
{{- define "dockerbuild-verify-python" -}}
- name: dockerbuild-verify
taskRef:
kind: Task
name: dockerbuild-verify
runAfter:
- sonar
- dockerfile-lint
workspaces:
- name: source
workspace: shared-workspace
subPath: source
{{- end -}}
{{- define "build-pipeline-python-image-build-push-common" -}}
- name: kaniko-build
taskRef:
kind: Task
name: kaniko
runAfter:
- push
params:
- name: codebase-name
value: "$(params.CODEBASE_NAME)"
- name: image-tag
value: "$(tasks.get-version.results.IS_TAG)"
- name: image-tar
value: "$(params.CODEBASE_NAME)_$(tasks.get-version.results.IS_TAG)"
workspaces:
- name: source
workspace: shared-workspace
subPath: source
{{- end -}}
{{- define "save-cache-pyhton" -}}
- name: save-cache
taskRef:
kind: Task
name: save-cache
runAfter:
- push
params:
- name: CACHE_NAME
value: $(params.CODEBASE_NAME)
workspaces:
- name: cache
workspace: shared-workspace
subPath: cache
{{- end -}}
{{- define "ansible-check-review-common" -}}
- name: ansible-lint
taskRef:
kind: Task
name: ansible
runAfter:
- init-values
params:
- name: EXTRA_COMMANDS
value: |
ansible-lint
workspaces:
- name: source
workspace: shared-workspace
subPath: source
- name: ansible-tests
taskRef:
kind: Task
name: ansible
runAfter:
- ansible-lint
params:
- name: EXTRA_COMMANDS
value: |
ansible-playbook tests/*.*
workspaces:
- name: source
workspace: shared-workspace
subPath: source
{{- end -}}
{{- define "ansible-check-build-common" -}}
- name: ansible-lint
taskRef:
kind: Task
name: ansible
runAfter:
- init-values
params:
- name: EXTRA_COMMANDS
value: |
ansible-lint
workspaces:
- name: source
workspace: shared-workspace
subPath: source
- name: ansible-tests
taskRef:
kind: Task
name: ansible
runAfter:
- ansible-lint
params:
- name: EXTRA_COMMANDS
value: |
ansible-playbook tests/*.*
workspaces:
- name: source
workspace: shared-workspace
subPath: source
- name: git-tag
taskRef:
kind: Task
name: git-cli
runAfter:
- ansible-tests
params:
- name: GIT_USER_EMAIL
value: edp-ci@edp.ci-user
- name: GIT_USER_NAME
value: edp-ci
- name: GIT_SCRIPT
value: |
git tag -a "$(tasks.get-version.results.VCS_TAG)" -m "Tag is added automatically by CI user"
git push --tags
workspaces:
- name: source
workspace: shared-workspace
subPath: source
- name: ssh-directory
workspace: ssh-creds
{{- end -}}