-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
67 lines (59 loc) · 2.2 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
# В нашем Gitlab для сборки контейнеров воспользуемся Докером в Докере :)
# https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-the-kubernetes-executor-with-docker-in-docker
# Для сборки образов с использованием Docker-in-Docker:
# добавить в код Downstream пайплайнов в секцию include подготовленный шаблон, содержащий необходимые настройки:
# https://gitlab.praktikum-services.ru/templates/ci/-/blob/main/DockerInDockerTemplate.yml
# использовать в задачах сборки в качестве образа стабильную версию образа Docker:dind docker:20.10.12-dind-rootless
#
include:
- project: 'templates/ci'
file: 'DockerInDockerTemplate.yml'
variables:
VERSION: 1.0.${CI_PIPELINE_ID}
stages:
- build
- test
- release
build-backend:
stage: build
image: docker:20.10.12-dind-rootless
before_script:
- until docker info; do sleep 1; done
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- cd backend
- >
docker build
--build-arg VERSION=$VERSION
--tag $CI_REGISTRY_IMAGE/momo-backend:$VERSION
.
- docker push $CI_REGISTRY_IMAGE/momo-backend:$VERSION
unit-test:
stage: test
image: golang:1.17
script:
- cd backend
- go test -v ./...
sonarqube-backend-test:
stage: test
image:
name: sonarsource/sonar-scanner-cli:latest
script:
- cd backend
- >
sonar-scanner -Dsonar.qualitygate.wait=true
-Dsonar.projectKey=${KEY_BACK_SONAR}
-Dsonar.host.url=${URL_SONAR}
-Dsonar.login=${LOGIN_BACK_SONAR}
upload-backend-latest:
variables:
GIT_STRATEGY: none
image: docker:20.10.12-dind-rootless
stage: release
before_script:
- until docker info; do sleep 1; done
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker pull $CI_REGISTRY_IMAGE/momo-backend:$VERSION
- docker tag $CI_REGISTRY_IMAGE/momo-backend:$VERSION $CI_REGISTRY_IMAGE/momo-backend:latest
- docker push $CI_REGISTRY_IMAGE/momo-backend:latest