Newer
Older
variables:
MIRROR_REPO: git@github.com:thm-projects/arsnova-backend.git
WAR_FILE: target/arsnova-backend-*.war
stages:
- analysis
- test
- build
- deploy
- synchronization
cache:
paths:
- .m2/
sync_mirror:
stage: synchronization
when: always
except:
- production
- staging
- mkdir ~/.ssh && echo "$GITHUB_HOST_KEY" > ~/.ssh/known_hosts
- eval $(ssh-agent -s) && ssh-add <(echo "$GITHUB_DEPLOY_KEY")
- git clone --bare "$CI_REPOSITORY_URL" mirror.git
- cd mirror.git
- git update-ref -d refs/tags/production
- git update-ref -d refs/tags/staging
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
sonar:
stage: analysis
only:
- master
tags:
- maven
allow_failure: true
script:
- mvn sonar:sonar
checkstyle:
stage: analysis
tags:
- maven
script:
- mvn checkstyle:checkstyle
test:
stage: test
tags:
- maven
script:
- mvn test
package:
stage: build
tags:
- maven
artifacts:
paths:
- $WAR_FILE
script:
- mvn package -DskipTests
tomcat_production:
stage: deploy
only:
- production
script:
- curl --fail --upload-file $WAR_FILE "https://$PROD_TOMCAT_USER:$PROD_TOMCAT_PASSWORD@$PROD_TOMCAT_HOST/manager/text/deploy?path=%2Fapi&update=true"
tomcat_development:
stage: deploy
only:
- staging
script:
- curl --fail --upload-file $WAR_FILE "https://$DEV_TOMCAT_USER:$DEV_TOMCAT_PASSWORD@$DEV_TOMCAT_HOST/manager/text/deploy?path=%2Fapi&update=true"