-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
133 lines (121 loc) · 2.78 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
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
stages:
- test
- build
- publish
- deploy
- cleanup
variables:
CI_TAG: ci-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA
REPO_URL: http://repo-staging.dc.prozorro.gov.ua/repos/helm/
MONGODB_ROOT_PASSWORD: example
MONGODB_REPLICA_SET_MODE: primary
MONGODB_REPLICA_SET_NAME: rs0
MONGODB_REPLICA_SET_KEY: replicaSetKey
test:
image: docker-registry.prozorro.gov.ua/docker/images/python:3.8-alpine3.14
stage: test
tags:
- kube-dev
services:
- bitnami/mongodb:latest
before_script:
- apk add git
- pip install -r requirements.txt
- pip install -e .
- pip install pytest pytest-asyncio coverage
- echo '127.0.0.1 mongo' >> /etc/hosts
script:
- cd tests && coverage run -m pytest
- coverage report
coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
build:
stage: build
dependencies:
- test
tags:
- shell
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_TAG .
publish:
stage: publish
dependencies:
- build
tags:
- shell
before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
variables:
TAG: $CI_COMMIT_REF_SLUG
script:
- docker tag $CI_REGISTRY_IMAGE:$CI_TAG $CI_REGISTRY_IMAGE:$TAG
- docker push $CI_REGISTRY_IMAGE:$TAG
only:
- branches
- tags
except:
- schedules
- master
publish_latest:
extends: publish
only:
- master
variables:
TAG: "latest"
except:
- schedules
review:
stage: deploy
dependencies:
- build
tags:
- shell
environment:
name: review/${CI_COMMIT_REF_SLUG}
action: start
url: http://api.${CI_COMMIT_REF_SLUG}.${K8S_DOMAIN}/api/2.5/tenders
on_stop: stop_review
auto_stop_in: 1 month
variables:
API_TAG: "master"
FRONT_TAG: "0.2.11"
TAG: $CI_COMMIT_REF_SLUG
script:
- helm3 repo add prozorro $REPO_URL
- helm3 repo update
- helm3 --debug upgrade $CI_COMMIT_REF_SLUG --install prozorro/prozorro --namespace dev-prozorro
--set prozorro-api.image.tag=$API_TAG --set deployAuctions=false --set deployAuction=true
--set prozorro-auction.api.image.tag=$TAG
--set prozorro-auction.chronograph.image.tag=$TAG
--set prozorro-auction.databridge.image.tag=$TAG
--set prozorro-auction.frontend.image.tag=$FRONT_TAG
--wait
only:
- branches
except:
- master
- schedules
when: manual
stop_review:
stage: deploy
script:
- helm3 delete $CI_COMMIT_REF_SLUG
environment:
name: review/${CI_COMMIT_REF_SLUG}
action: stop
tags:
- shell
only:
- branches
except:
- master
- schedules
when: manual
clenup-ci-image:
stage: cleanup
tags:
- shell
script:
- docker rmi -f $CI_TAG || true
when: always