-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
147 lines (136 loc) · 6.82 KB
/
.travis.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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
addons:
chrome: stable
services:
- docker
language: csharp
mono: none
dotnet: 3.1
jdk:
- openjdk11
solution: server/glovo_webapi/glovo_webapi.sln
install:
- dotnet tool install --global dotnet-ef
- export PATH="$HOME/.dotnet/tools":$PATH
- git clone https://github.com/flutter/flutter.git --branch 1.23.0-18.1.pre --single-branch
- export PATH="$TRAVIS_BUILD_DIR/flutter/bin:$PATH"
- flutter config --enable-web
- wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.5.0.2216-linux.zip
- unzip sonar-scanner-cli-4.5.0.2216-linux.zip -d $TRAVIS_BUILD_DIR/sonar_dir
- dotnet tool install --global coverlet.console # Installing coverlet console, used for unit testing and coverage
- dotnet tool install --global dotnet-sonarscanner # Installing dotnet sonnarscanner
stages:
- tests
- name: code_analysis
if: type = pull_request
- name: "deploy dev"
if: branch = dev AND type = push
- name: "deploy main"
if: branch = main AND type = push
jobs:
include:
- stage: tests
name: "Unit Tests"
script:
- echo "PASS"
- name: "Integration Tests"
script:
- echo "PASS"
- cd $TRAVIS_BUILD_DIR/server/glovo_webapi
- dotnet restore
- cd glovo_webapi
- dotnet build --no-incremental
- dotnet publish -c Release -o publish
- cd $TRAVIS_BUILD_DIR/server/docker_database
- bash load_server_travis.sh
- cd $TRAVIS_BUILD_DIR/server/glovo_webapi/glovo_webapi/publish
- ASPNETCORE_ENVIRONMENT=Development
- dotnet glovo_webapi.dll &
- cd $TRAVIS_BUILD_DIR/frontend/customerapp
- flutter clean
- flutter pub get
- flutter test test_driver/tests/endpoints/orders.dart
#- flutter test test_driver/tests/endpoints/products.dart TODO: Get Products API call changed. Test update required.
#- flutter test test_driver/tests/endpoints/restaurants.dart TODO: Get Products API call changed. Test update required.
- chmod +x ./test_driver/chromedriver
- ./test_driver/chromedriver --verbose --port=4444 &
- netstat -tulpn
- flutter devices
#- flutter drive -d web-server --browser-name=chrome --target=test_driver/tests/cart.dart --release
#- flutter drive -d web-server --browser-name=chrome --target=test_driver/tests/order.dart --release
#- flutter drive -d web-server --browser-name=chrome --target=test_driver/tests/profile_settings.dart --release
- stage: code_analysis
name: "backend_ana"
script:
- cd $TRAVIS_BUILD_DIR/server/glovo_webapi/glovo_webapi_test
- dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
- dotnet build-server shutdown #Maybe we don't need this
- dotnet sonarscanner begin /k:komet_backend /d:sonar.host.url=http://167.71.130.118:9000 /d:sonar.login=d48a60c50f73a7f5d0d8e90ec5a451494454e132 /d:sonar.cs.opencover.reportsPaths="./coverage.opencover.xml" /d:sonar.coverage.exclusion="**Test*.cs" # To find SonarQube instance
- dotnet build #Why we need that?
- dotnet sonarscanner end /d:sonar.login=d48a60c50f73a7f5d0d8e90ec5a451494454e132
- name: "frontend_ana"
script:
- export PATH="$TRAVIS_BUILD_DIR/flutter/bin/cache/dart-sdk/bin:$PATH"
- cd $TRAVIS_BUILD_DIR/frontend/customerapp
- flutter clean
- flutter pub get
- export PATH="$TRAVIS_BUILD_DIR/sonar_dir/sonar-scanner-cli-4.5.0.2216-linux/bin:$PATH"
- /home/travis/build/UB-ES-2020-F/Glovo/sonar_dir/sonar-scanner-4.5.0.2216-linux/bin/sonar-scanner
- stage: "deploy dev"
name: "Backend"
script:
- cd $TRAVIS_BUILD_DIR/server/glovo_webapi
- dotnet restore
- cd glovo_webapi
- dotnet publish -c Release -o $TRAVIS_BUILD_DIR/backend_deployment/publish
- cd $TRAVIS_BUILD_DIR/backend_deployment
- dotnet ef migrations script --idempotent --project $TRAVIS_BUILD_DIR/server/glovo_webapi/glovo_webapi -o migration.sql
- heroku pg:psql --app ub-es2020-glovo-webapi-dev < migration.sql
- heroku container:login
- heroku container:push web -a ub-es2020-glovo-webapi-dev
- heroku container:release web -a ub-es2020-glovo-webapi-dev
- name: "Frontend"
script:
- echo "machine git.heroku.com login [email protected] password 49916134-f0ec-4564-a22d-c40da16b9872" > $HOME/.netrc
- cd $TRAVIS_BUILD_DIR/frontend/customerapp
- flutter clean
- cp resources/config/prod-dev.json resources/config/dev.json
- flutter build web
- cat build/web/assets/resources/config/dev.json
- cp -r build/web $TRAVIS_BUILD_DIR/frontend_deploy/web
- cd $TRAVIS_BUILD_DIR/frontend_deploy
- git init
- heroku git:remote -a ub-es2020-glovo-dev
- git add .
- git commit -am "deploy"
- git push -f heroku master
- stage: "deploy main"
name: "Backend"
script:
- cd $TRAVIS_BUILD_DIR/server/glovo_webapi
- dotnet restore
- cd glovo_webapi
- dotnet publish -c Release -o $TRAVIS_BUILD_DIR/backend_deployment/publish
- cd $TRAVIS_BUILD_DIR/backend_deployment
- dotnet ef migrations script --idempotent --project $TRAVIS_BUILD_DIR/server/glovo_webapi/glovo_webapi -o migration.sql
- heroku pg:psql --app ub-es2020-glovo-webapi < migration.sql
- heroku container:login
- heroku container:push web -a ub-es2020-glovo-webapi
- heroku container:release web -a ub-es2020-glovo-webapi
- name: "Frontend"
script:
- echo "machine git.heroku.com login [email protected] password 49916134-f0ec-4564-a22d-c40da16b9872" > $HOME/.netrc
- cd $TRAVIS_BUILD_DIR/frontend/customerapp
- flutter clean
- cp resources/config/prod.json resources/config/dev.json
- flutter build web
- ls -R build/web/
- cp -r build/web $TRAVIS_BUILD_DIR/frontend_deploy/web
- cd $TRAVIS_BUILD_DIR/frontend_deploy
- git init
- heroku git:remote -a ub-es2020-glovo
- git add .
- git commit -am "deploy"
- git push -f heroku master
env:
global:
secure: LWdBo7I/uCL3kGVGebvREUUbkYbzD8ZRLvldPit2j0frPH7+yzbc+bxBe9hoDyLtWB9/TE9dUCnBYmlayE20Rg/3ygI5K74qsWcYCXC5A1UgmDeLVV8EFL5IOo3PHNnsuPpFEmnYJ/oj307Dywmh9WRMK8hvCRzQzDZ4+IQUoX01Wec04zcB8EdZMkrcdlYHmBPXqtTOQ/yMHJCQpEeDyoCRj0YbzJRcDrokfaJY5g7+gmr6S20V9sLzRmuMlhikzLhEkuwY8r5orDWcOKGOKxiyMsQb/1knBZbFyUxYKjtKUJ3euYG4F8BhhLe387ap73YF92NIZlbTNu1qb0kxXlw7NwiYpkAv29elsa5e5oQjM8Qb4AZIWJUCbJm7+X8x3iiHdQRiRHcvSPlwdFdc/VWZlRjl6THn/my8iGDSmxPPYAe73S2gmb2vNIwPvRDE09m7Ij71DTwf7tKul+3Ewy2kvJn0dg2h1DC9mHjLc/41ztY8+cRc5jyXH9seO22arKUz8CUN11f/TAmESl13k405VIFk+0/PJXV2IwBsacudGmSBOsTkg3dp7j4+yRDPwMXAjct7fHHIo6JpMvG4IZaOOzgSSDEZOhBydX9dGeBCuI8Bnh840fI+CYscecCFp1gdH5g0Xd7+uTCKYGVa3ZizA8YOMdOOxpIDLGv6XNs=