-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
55 lines (49 loc) · 1.87 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
image: maven:3-jdk-8
cache:
paths:
- /root/.m2/repository
stages:
- build
- deploy
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
- '[[ -f /.dockerenv ]] && ssh-keyscan -H "$SSH_HOSTNAME_TESTING" > ~/.ssh/known_hosts'
- '[[ -f /.dockerenv ]] && ssh-keyscan -H "$SSH_HOSTNAME_PRODUCTION" > ~/.ssh/known_hosts'
maven-build:
image: maven:3-jdk-8
stage: build
services:
- postgres:latest
variables:
POSTGRES_DB : "paymentbnidb"
POSTGRES_USER: "paymentbni"
POSTGRES_PASSWORD: "paymentbni123"
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres/paymentbnidb
script:
- scp root@$SSH_HOSTNAME_TESTING:~/bni-ecollection-1.0.0.jar /tmp/
- mkdir -p .mvn/production-repository
- mvn deploy:deploy-file -Durl=file://$(pwd)/.mvn/production-repository -DgroupId=id.co.bni.ecollection -DartifactId=bni-ecollection -Dversion=1.0.0 -Dpackaging=jar -Dfile=/tmp/bni-ecollection-1.0.0.jar
- mvn package sonar:sonar -Dsonar.organization=$SONAR_ORG -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -B -Pproduction -Dmaven.repo.local=.m2/repository
artifacts:
paths:
- target/*.jar
deploy-to-testing:
image: debian:latest
stage: deploy
only:
- tags
script:
- scp target/*.jar root@$SSH_HOSTNAME_TESTING:/var/lib/$CI_PROJECT_NAME/
- ssh root@$SSH_HOSTNAME_TESTING /var/lib/$CI_PROJECT_NAME/deploy.sh $CI_PROJECT_NAME-$CI_COMMIT_TAG.jar
deploy-to-production:
image: debian:latest
stage: deploy
only:
- /-RELEASE$/
script:
- scp target/*.jar root@$SSH_HOSTNAME_PRODUCTION:/var/lib/$CI_PROJECT_NAME/
- ssh root@$SSH_HOSTNAME_PRODUCTION /var/lib/$CI_PROJECT_NAME/deploy.sh $CI_PROJECT_NAME-$CI_COMMIT_TAG.jar