-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
110 lines (104 loc) · 3.25 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
services:
- name: docker.texta.ee/texta/texta-rest/test:latest
alias: texta-rest
- name: redis:6
- name: mariadb:10.3.28
alias: texta-mariadb
- name: docker.texta.ee/texta/texta-uaa:latest
alias: texta-uaa
- name: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
alias: texta-elastic
command: [ "bin/elasticsearch", "-Ediscovery.type=single-node" ]
variables:
DJANGO_DATABASE_ENGINE: "django.db.backends.mysql"
DJANGO_DATABASE_NAME: docker
DJANGO_DATABASE_USER: docker
DJANGO_DATABASE_PASSWORD: docker
DJANGO_DATABASE_HOST: texta-mariadb
DJANGO_DATABASE_PORT: 3306
MYSQL_ROOT_USER: docker
MYSQL_ROOT_PASSWORD: docker
MYSQL_PORT: 3306
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: docker
MYSQL_USER: docker
MYSQL_PASSWORD: docker
TEXTA_ES_URL: http://texta-elastic:9200
TEXTA_MLP_URL: http://mlp-dev.texta.ee:5000
TEXTA_REDIS_URL: redis://redis:6379/0
TEXTA_API_URL: http://texta-rest
TEXTA_ADMIN_PASSWORD: "1234"
TEXTA_USE_CSRF: "False"
#TEXTA_EXTERNAL_DATA_DIR: /cache
npm_config_cache: "$CI_PROJECT_DIR/.npm"
CYPRESS_CACHE_FOLDER: "$CI_PROJECT_DIR/cache/Cypress"
FF_NETWORK_PER_BUILD: 1
# MLP
TEXTA_LANGUAGE_CODES: et
# UAA
TEXTA_USE_UAA: "True"
TEXTA_UAA_REDIRECT_URI: http://texta-rest/api/v2/uaa/callback
TEXTA_UAA_USER: test
TEXTA_UAA_EMAIL: [email protected]
TEXTA_UAA_PWD: test
TEXTA_UAA_URL: http://texta-uaa:8080/uaa
TEXTA_UAA_FRONT_REDIRECT_URL: http://localhost:4200/#/oauth/uaa
TEXTA_UAA_CLIENT_ID: login
TEXTA_UAA_CLIENT_SECRET: loginsecret
stages:
- unit-test
- e2e-test
- build
Karma:
image: zenika/alpine-chrome:102-with-node
script:
- npm ci
- npm run test -- --source-map=false --no-watch --no-progress --browsers=ChromeHeadlessCI
stage: unit-test
tags:
- ci-test
Cypress:
image: cypress/base:16.18.0
stage: e2e-test
tags:
- ci-test
before_script:
- npm ci
- apt-get update && apt-get install python3-pip -y && apt-get install curl -y
- pip3 install elasticsearch==7.10.1
- npm run cy:verify
- npm run cy:info
- sh wait_for_uaa.sh
- python3 import_test_data.py
script:
- npm run cypress:ci
artifacts:
when: always
paths:
- cypress/videos/**/*.mp4
- cypress/screenshots/**/*.png
expire_in: 1 day
build:
image: node:16.18
stage: build
only:
- master
tags:
- ci-test
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- mkdir -p ~/.ssh
- eval $(ssh-agent -s)
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- npm install -g @angular/cli
- npm ci
- apt-get update && apt-get install jq -y
script:
- ng build --configuration=production
- mkdir release
- tar -czvf release/texta-rest-front-latest.tar.gz dist/TEXTA
- export FRONT_VERSION=$(jq .version package.json | sed -s s'/"//'g)
- cp release/texta-rest-front-latest.tar.gz release/texta-rest-front-${FRONT_VERSION}.tar.gz
- ssh-add <(echo "$STAGING_PRIVATE_KEY")
- ssh [email protected] "mkdir -p /opt/packages/texta-rest-front"
- scp -r release/* [email protected]:/opt/packages/texta-rest-front