Update .gitlab-ci.yml file
This commit is contained in:
parent
2db3514518
commit
10c363ee4d
119
.gitlab-ci.yml
Normal file
119
.gitlab-ci.yml
Normal file
@ -0,0 +1,119 @@
|
||||
stages:
|
||||
- lint
|
||||
- build
|
||||
- deploy
|
||||
- release
|
||||
|
||||
default:
|
||||
image:
|
||||
name: "alpine/k8s:1.26.3"
|
||||
|
||||
variables:
|
||||
PIPELINE:
|
||||
description: "Defines which Path of the Pipeline"
|
||||
value: "default"
|
||||
options:
|
||||
- release
|
||||
- default
|
||||
|
||||
workflow:
|
||||
name: "Pipeline for Merge Request: $merge_request_event"
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
variables:
|
||||
PIPELINE: "release"
|
||||
- if: $CI_COMMIT_REF_NAME =~ /release/
|
||||
variables:
|
||||
PIPELINE: "release"
|
||||
- if: $CI_COMMIT_TAG
|
||||
when: never
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
when: never
|
||||
- if: "$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS"
|
||||
when: never
|
||||
|
||||
Helm Lint:
|
||||
stage: lint
|
||||
image:
|
||||
name: alpine/helm:3.11.1
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
script:
|
||||
- helm lint .
|
||||
|
||||
Helm Template:
|
||||
stage: lint
|
||||
image:
|
||||
name: alpine/helm:3.11.1
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
script:
|
||||
- echo "Templating for Answerfile Container Upload"
|
||||
- helm template . -f answers/container-upload.yaml
|
||||
|
||||
Kubescore:
|
||||
stage: lint
|
||||
image: zegl/kube-score:latest
|
||||
script:
|
||||
- echo "Scoring the Chart YAML"
|
||||
- kube-score score Chart.yaml
|
||||
|
||||
Construct Readme:
|
||||
stage: build
|
||||
image:
|
||||
name: registry.knecon.com/knecon/devops/readme-generator:1.1.0
|
||||
before_script:
|
||||
- git clone "https://${CI_GIT_USERNAME}:${CI_GIT_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git" "${CI_COMMIT_SHA}"
|
||||
- git config --global user.email "project_2_bot_18f71e7e9b3d68b252f9d3dc757685bc@noreply.gitlab.knecon.com"
|
||||
- git config --global user.name "GitLab"
|
||||
after_script:
|
||||
- cd "$CI_COMMIT_SHA"
|
||||
- git add README.md
|
||||
- |-
|
||||
CHANGES=$(git status --porcelain | wc -l)
|
||||
if [ "$CHANGES" -gt "0" ]
|
||||
then
|
||||
git status
|
||||
git commit -m "Automated README.md update"
|
||||
git push --push-option='ci.skip' origin "${CI_COMMIT_BRANCH}"
|
||||
fi
|
||||
script:
|
||||
- cd "$CI_COMMIT_SHA"
|
||||
- readme-generator -r README.md -v values.yaml
|
||||
|
||||
Nexus Upload:
|
||||
stage: release
|
||||
needs:
|
||||
- Helm Template
|
||||
- Helm Lint
|
||||
rules:
|
||||
- if: $PIPELINE == "release"
|
||||
image: registry.knecon.com/knecon/devops/build-image:latest
|
||||
script:
|
||||
- |-
|
||||
export VERSION=$(cat Chart.yaml | grep "^version:" | sed 's/^version: \(.*\)$/\1/g')-$CI_PIPELINE_IID
|
||||
sed -s "s/^version: .*$/version: $VERSION/g" -i Chart.yaml
|
||||
- uploadFile=$( helm package . | awk 'NF>1{print q $NF}' )
|
||||
# - curl -s -u "${CI_NEXUS_USER}:${CI_NEXUS_PASSWORD}" "${CI_NEXUS_ADDRESS}:443/repository/red-dev/" --upload-file $uploadFile
|
||||
- echo "TAG=v$(echo $VERSION)" >> variables.env
|
||||
- echo "FILE=$(echo $uploadFile)" >> variables.env
|
||||
artifacts:
|
||||
reports:
|
||||
dotenv: variables.env
|
||||
|
||||
Helm-pre-release:
|
||||
stage: release
|
||||
rules:
|
||||
- if: $PIPELINE == "release"
|
||||
needs:
|
||||
- job: Nexus Upload
|
||||
artifacts: true
|
||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||
script:
|
||||
- echo "Releasing version $VERSION"
|
||||
release:
|
||||
tag_name: '$TAG'
|
||||
description: '$TAG'
|
||||
ref: '$CI_COMMIT_SHA'
|
||||
assets:
|
||||
links:
|
||||
- name: '$FILE'
|
||||
url: '${CI_NEXUS_ADDRESS}/repository/red-dev/$FILE'
|
||||
Loading…
x
Reference in New Issue
Block a user