-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
119 lines (113 loc) · 3.99 KB
/
.gitlab-ci.yml
File metadata and controls
119 lines (113 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml
# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages
stages:
- lint
- build
- deploy
lint_helm:
stage: lint
image: matthiasgabathuler/my-runner:ubuntu-20.04
tags:
- isg-test
script:
- IMAGE_NAME=$(echo $IMAGE_NAME | tr '[:upper:]' '[:lower:]')
- >-
helm lint ${CI_PROJECT_DIR}/helm
--set image.name=${IMAGE_NAME}
--set image.tag=${CI_COMMIT_REF_NAME}
--set build.job_id=${CI_JOB_ID}
--set build.commit=${CI_COMMIT_SHA}
build_backend:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
tags:
- isg-test
variables:
IMAGE_NAME: $ci_registry/$CI_PROJECT_PATH-backend
script:
- IMAGE_NAME=$(echo $IMAGE_NAME | tr '[:upper:]' '[:lower:]')
- mkdir -p /kaniko/.docker
# - |-
# KANIKOPROXYBUILDARGS=""
# KANIKOCFG="\"auths\":{\"${ci_registry}\":{\"auth\":\"$(printf "%s:%s" "${ci_registry_user}" "${ci_registry_password}" | base64 | tr -d '\n')\"}}"
# KANIKOCFG="{ ${KANIKOCFG} }"
# echo "${KANIKOCFG}" > /kaniko/.docker/config.json
- >-
/kaniko/executor
--context "${CI_PROJECT_DIR}/backend-project"
--dockerfile "${CI_PROJECT_DIR}/backend-project/Dockerfile"
--destination "${IMAGE_NAME}:${CI_COMMIT_REF_NAME}"
--destination "${IMAGE_NAME}:${CI_COMMIT_SHORT_SHA}"
--destination "${IMAGE_NAME}:latest"
only:
refs:
- ci-cd-pipeline
- /^release.*$/
changes:
- backend-project/**/*
build_frontend:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
tags:
- isg-test
variables:
IMAGE_NAME: $ci_registry/$CI_PROJECT_PATH-frontend
script:
- IMAGE_NAME=$(echo $IMAGE_NAME | tr '[:upper:]' '[:lower:]')
# - |-
# KANIKOPROXYBUILDARGS=""
# KANIKOCFG="\"auths\":{\"${ci_registry}\":{\"auth\":\"$(printf "%s:%s" "${ci_registry_user}" "${ci_registry_password}" | base64 | tr -d '\n')\"}}"
# KANIKOCFG="{ ${KANIKOCFG} }"
# echo "${KANIKOCFG}" > /kaniko/.docker/config.json
- sed -i "s/##BACKEND_URI##/http:\/\/be.$(echo $CI_PROJECT_NAME | tr '[:upper:]' '[:lower:]').course-xai-iml22.isginf.ch/g" react-frontend/src/backend/BackendQueryEngine.tsx
- >-
/kaniko/executor
--context "${CI_PROJECT_DIR}/react-frontend"
--dockerfile "${CI_PROJECT_DIR}/react-frontend/Dockerfile"
--destination "${IMAGE_NAME}:${CI_COMMIT_REF_NAME}"
--destination "${IMAGE_NAME}:${CI_COMMIT_SHORT_SHA}"
--destination "${IMAGE_NAME}:latest"
only:
refs:
- ci-cd-pipeline
- /^release.*$/
changes:
- react-frontend/**/*
deploy_app:
stage: deploy
image: matthiasgabathuler/my-runner:ubuntu-20.04
tags:
- isg-test
variables:
IMAGE_NAME: $CI_PROJECT_PATH
script:
- IMAGE_NAME=$(echo $IMAGE_NAME | tr '[:upper:]' '[:lower:]')
- >-
helm --namespace $k8s_namespace
--kube-context $k8s_context
upgrade ${CI_PROJECT_NAME} ${CI_PROJECT_DIR}/helm
--install
--history-max 10
--set image.host=${ci_registry}
--set image.name=${IMAGE_NAME}
--set image.tag=${CI_COMMIT_REF_NAME}
--set build.job_id=${CI_JOB_ID}
--set build.commit=${CI_COMMIT_SHA}
only:
- ci-cd-pipeline
- /^release.*$/