-
Notifications
You must be signed in to change notification settings - Fork 1
/
.gitlab-ci.yml
48 lines (42 loc) · 1.73 KB
/
.gitlab-ci.yml
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
# This file is a template, and might need editing before it works on your project.
# 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/README.html#stages
stages: # List of stages for jobs, and their order of execution
- test
- build
- deploy
variables:
DOCKER_REGISTRY: "https://index.docker.io/v1/"
DOCKER_IMAGE: "bwbwchen/shorturl"
KUBECONFIG: /root/.kube/config
test-job:
stage: test
before_script:
- apk add docker-compose
- docker build -f Dockerfile-ci --tag shorturl_test .
script:
- docker-compose up --abort-on-container-exit --exit-code-from server
build-job:
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
stage: build
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$DOCKER_REGISTRY\":{\"username\":\"${DOCKER_REGISTRY_USER}\",\"password\":\"${DOCKER_REGISTRY_PASSWORD}\"}}}" > /kaniko/.docker/config.json
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $DOCKER_IMAGE
deploy-job:
stage: deploy
image: dtzar/helm-kubectl
before_script:
- sed -ie "s/deploy-date-value/$(date)/g" kubernetes/deploy.yaml
- mkdir -p /root/.kube/ && touch /root/.kube/config
- echo ${KUBERNETES_KUBE_CONFIG} | base64 -d > ${KUBECONFIG}
script:
- kubectl apply -f kubernetes/deploy.yaml