-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
102 lines (95 loc) · 2.89 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
include:
- template: SAST.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml
- template: Dependency-Scanning.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/Dependency-Scanning.gitlab-ci.yml
.default_rule: &default_rule
if: '$CI_COMMIT_BRANCH =~ /^feature|^fix|^hotfix|^bugfix|^release|^snyk-fix/'
stages:
- test
- prepare
- check
- deploy
variables:
AUTH_REDIS_URL: 'redis://e2e-test-redis:6379/0'
DB_CACHE_REDIS_URL: 'redis://:redis@e2e-test-redis:6379/0'
DB_HOST: 'e2e-test-db'
DB_PORT: 5432
DB_USERNAME: postgres
DB_PASSWORD: pass
DB_DATABASE: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: pass
POSTGRES_DB: postgres
PGDATA: /var/lib/postgresql/data/db-files/
ACCESS_TOKEN_SECRET: lkddsijdief56kdsjsd5ds5csdcdjcjkdlskjGHJEOKDLLKZMMSd6sfd5s4cd4cskdckdsnjfcdssk6966
REFRESH_TOKEN_SECRET: r3p67zIY4TlYzTvu1VC6r3mV54545x1j
ACCESS_TOKEN_LIFE: 600
REFRESH_TOKEN_LIFE: 600
FROM_EMAIL: [email protected]
SMTP_ENDPOINT: mailhog-sp-auth
SMTP_PORT: 1025
SMTP_USERNAME: username
SMTP_PASSWORD: password
install_back_dependencies:
stage: prepare
image: node:lts
script:
- cd back
- yarn install
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- back/node_modules/
rules:
- *default_rule
- if: '$CI_COMMIT_BRANCH == "develop"' # setting fixed value `develop` -- could be set to a var: $CI_DEFAULT_BRANCH
- if: '$CI_COMMIT_TAG =~ /^v.+/'
check:test-back:
stage: check
image: node:lts
services:
- name: postgres:13.4
alias: e2e-test-db
- name: redis:5.0-alpine
alias: e2e-test-redis
script:
- cd back
- yarn migration:run
- yarn test
cache:
key: ${CI_COMMIT_REF_SLUG}
policy: pull
paths:
- node_modules/
rules:
- *default_rule
- if: '$CI_COMMIT_BRANCH == "develop"'
- if: '$CI_COMMIT_TAG =~ /^v.+/'
check:lint-back:
stage: check
image: node:lts
script:
- cd back
- yarn run lint
cache:
key: ${CI_COMMIT_REF_SLUG}
policy: pull
paths:
- node_modules/
rules:
- *default_rule
- if: '$CI_COMMIT_BRANCH == "develop"'
- if: '$CI_COMMIT_TAG =~ /^v.+/'
deploy:back-prod:
image: google/cloud-sdk:359.0.0-slim
stage: deploy
script:
- apt-get update && apt-get install -yqq jq
- export PACKAGE_VERSION=$(jq -r .version ./back/package.json | tr . -)
- echo $SERVICE_ACCOUNT > ${HOME}/gcloud-service-key.json
- gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json
- cp "$ENV_VARIABLES_BACK_PROD" ./back/env_variables_prod.yaml
- cp "$BETA_SETTINGS_BACK_PROD" ./back/beta_settings_prod.yaml
- gcloud --project $PROJECT_ID app deploy ./back/app_prod.yaml --version $PACKAGE_VERSION -q --no-promote
rules:
- if: '$CI_COMMIT_BRANCH == "master"'
- if: '$CI_COMMIT_TAG =~ /^v.+/'