-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
119 lines (112 loc) · 3.19 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
111
112
113
114
115
116
117
118
119
#-----------------------------------HEROKU CI/CD CODE-----------------------------------
#image: maven:
image: ubuntu:latest
cache:
paths:
- .m2/repository/Trip_Management_System_Group_16/
- target/
stages:
- build
- test
- code_quality
- deploy
- deploy-prod
build:
image: maven:3-jdk-8
stage: build
script:
- mvn clean package -DskipTests=true
- ls
artifacts:
paths:
- target/*.jar
only:
refs:
- feature_configuration
- feature_UI
- feature_backend
- develop
- merge_requests
- main
- test
- unit_test_cases_dharmay
# test stage will compile the code and run all the unit tests present in the
# test folder.
test:
image: maven:3-jdk-8
stage: test
script:
- mvn clean test
artifacts:
when: always
reports:
junit:
- target/surefire-reports/TEST-*.xml
- target/failsafe-reports/TEST-*.xml
only:
refs:
- feature_configuration
- feature_UI
- feature_backend
- develop
- merge_requests
- main
- test
- unit_test_cases_dharmay
code_quality:
stage: code_quality
variables:
UPLOAD_QUALITY_REPORT: 'curl -X PUT -H "Authorization: Token $QSCORED_API_KEY" -H "repository-link: $CI_PROJECT_URL" + -H "username:[email protected]" -H "Content-Type: mulitpart/form-data" --url "https://qscored.com/api/upload/file.xml?is_open_access=off&version=$CI_PIPELINE_IID&project_name=CSCI_5308_GROUP_16" -F "file=@Designite_output/DesigniteAnalysis.xml"'
before_script:
- apt-get update
- ln -snf /usr/share/zoneinfo/$CONTAINER_TIMEZONE /etc/localtime && echo $CONTAINER_TIMEZONE > /etc/timezone
- apt-get --yes --force-yes install wget curl maven git
script:
- wget -O DesigniteJava.jar https://www.dropbox.com/s/mwizkj8uhplz4x3/DesigniteJava.jar?dl=1
- echo "/$CI_PROJECT_PATH"
- ls -lrth
# - java -jar DesigniteJava.jar -i . -o Designite_output -f XML
- java -jar DesigniteJava.jar -ci -repo $CI_PROJECT_PATH -pat $PAT -host "git.cs.dal.ca"
- 'eval "$UPLOAD_QUALITY_REPORT"'
only:
refs:
- feature_configuration
- feature_UI
- feature_backend
- develop
- merge_requests
- code_quality_danny
- ride_share_benny
- test
- main
deploy-prod:
image: ruby:latest
stage: deploy
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$DEPLOY_SSH_KEY" | tr -d '\r' | ssh-add -
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
#TODO: Add Production App Environment Variables
only:
- main
deploy:
image: ruby:latest
stage: deploy
# tags:
# - ugrad
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$DEPLOY_SSH_KEY" | tr -d '\r' | ssh-add -
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
only:
- develop