charts/pipelines-library/templates/pipelines/python/flask/gerrit-build-edp.yaml (147 lines of code) (raw):
{{ if has "gerrit" .Values.global.gitProviders }}
{{ if or ( .Values.pipelines.deployableResources.python.flask ) ( .Values.pipelines.deployableResources.python.fastapi ) }}
{{- $raw := include "edp-tekton.resourceMapping.python" . | trimAll "[]" -}}
{{- $resources := $raw | split " " -}}
{{- range $framework := $resources }}
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: gerrit-python-{{ $framework }}-app-build-edp
labels:
app.edp.epam.com/pipelinetype: build
{{- include "edp-tekton.labels" $ | nindent 4 }}
spec:
description: "The Build pipeline for building {{ $framework }} application (EDP versioning)"
workspaces:
- name: shared-workspace
- name: ssh-creds
params:
- name: pipelineUrl
default: https://portal-{{ $.Release.Namespace }}.{{ $.Values.global.dnsWildCard }}/c/main/pipelines/$(context.pipelineRun.namespace)/$(context.pipelineRun.name)
type: string
- name: git-source-url
default: "python-python-python-3.8"
description: git url to clone
type: string
- name: git-source-revision
description: 'git revision to checkout (branch, tag, sha, ref…)'
default: "master"
type: string
- name: CODEBASE_NAME
default: "python-app"
description: "Project name"
type: string
- name: CODEBASEBRANCH_NAME
description: "Codebasebranch name"
type: string
- name: changeNumber
description: Change number from Merge Request
- name: patchsetNumber
description: Patchset number from Merge Request
- name: TICKET_NAME_PATTERN
description: "Ticket name pattern"
default: ""
- name: COMMIT_MESSAGE_PATTERN
description: "Pattern to validate a commit message"
default: ""
- name: COMMIT_MESSAGE
description: "Commit message"
default: ""
- name: JIRA_ISSUE_METADATA_PAYLOAD
description: "Jira Payload"
default: ""
- name: JIRA_SERVER
description: "Jira server name"
default: ""
{{- include "build-result" $ | nindent 2 }}
tasks:
{{- include "gerrit-build-start" $ | nindent 4 }}
- name: get-version
taskRef:
kind: Task
name: get-version-edp
runAfter:
- init-values
params:
- name: CODEBASEBRANCH_NAME
value: $(params.CODEBASEBRANCH_NAME)
{{- include "get-cache" $ | nindent 4 }}
- name: update-build-number
taskRef:
kind: Task
name: update-build-number-python
runAfter:
- get-version
params:
- name: VERSION
value: $(tasks.get-version.results.VERSION)
workspaces:
- name: source
workspace: shared-workspace
subPath: source
{{ include "security" $ | nindent 4 }}
- name: build
taskRef:
kind: Task
name: python
runAfter:
- get-cache
- update-build-number
params:
- name: EXTRA_COMMANDS
value: |
# we checkout the source code in the /source directory
# and hold cache in the /cache directory
# build
python setup.py clean build sdist bdist_wheel
# lint
pip3 install -r test-requirements.txt
pylint --output-format=colorized *.py
flake8 --exclude .local --filename=*.py
# test
pytest -sv --color=yes
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: EXTRA_COMMANDS
value: |
pip3 install -r test-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
{{- include "build-pipeline-python-image-build-push-common" $ | nindent 4 }}
{{- include "save-cache-pyhton" $ | nindent 4 }}
{{ include "build-pipeline-end" $ | nindent 4 }}
{{ include "finally-block-edp" $ | nindent 2 }}
---
{{- end }}
{{ end }}
{{ end }}