-
Notifications
You must be signed in to change notification settings - Fork 22
/
.travis.yml
121 lines (121 loc) · 10.3 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
language: minimal
dist: jammy
before_install:
# Decrypt credentials for Alegre
- openssl aes-256-cbc -K $encrypted_e6af0c606e27_key -iv $encrypted_e6af0c606e27_iv
-in test/google_credentials.json.enc -out test/google_credentials.json -d
# Set a UTF-8 capabable locale
- export LC_ALL=C.UTF-8
- export LANG=C.UTF-8
- export LANGUAGE=C.UTF-8
# Needed to fix error when installing Pender gems
# Error: `There was an error while loading `rswag.gemspec`: Illformed requirement`
# https://github.com/jetpackworkflow/rswag/blob/master/rswag/rswag.gemspec#L18
# Ngrok
- curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt update && sudo apt install ngrok
- export TRAVIS_TAG=0.0.0
# Docker
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
# Pender
- export PENDER_BRANCH=$((git ls-remote --exit-code --heads https://github.com/meedan/pender.git $TRAVIS_BRANCH >/dev/null && echo $TRAVIS_BRANCH) || echo 'develop')
- echo "Using branch $PENDER_BRANCH for Pender"
- git clone --branch=$PENDER_BRANCH https://github.com/meedan/pender.git
- cd pender
- cp config/config.yml.example config/config.yml
- cp config/database.yml.example config/database.yml
- cp config/sidekiq.yml.example config/sidekiq.yml
- cd -
# Check API
- export CHECK_API_BRANCH=$((git ls-remote --exit-code --heads https://github.com/meedan/check-api.git $TRAVIS_BRANCH >/dev/null && echo $TRAVIS_BRANCH) || echo 'develop')
- echo "Using branch $CHECK_API_BRANCH for Check API"
- git clone --branch=$CHECK_API_BRANCH https://github.com/meedan/check-api.git
- cd check-api
- cp config/config.yml.example config/config.yml
- cp config/database.yml.example config/database.yml
- cp config/sidekiq.yml.example config/sidekiq.yml
- cd -
# Alegre
- export ALEGRE_BRANCH=$((git ls-remote --exit-code --heads https://github.com/meedan/alegre.git $TRAVIS_BRANCH >/dev/null && echo $TRAVIS_BRANCH) || echo 'develop')
- echo "Using branch $ALEGRE_BRANCH for Alegre"
- git clone --branch=$ALEGRE_BRANCH https://github.com/meedan/alegre.git
- cd alegre
- cp .env_file.test .env_file
- cp ../test/google_credentials.json google_credentials.json
- cd -
# Presto
- export PRESTO_BRANCH=$((git ls-remote --exit-code --heads https://github.com/meedan/presto.git $TRAVIS_BRANCH >/dev/null && echo $TRAVIS_BRANCH) || echo 'master')
- echo "Using branch $PRESTO_BRANCH for Presto"
- git clone --branch=$PRESTO_BRANCH https://github.com/meedan/presto.git
- cd presto
- cp .env_file.test .env_file
- cp ../test/google_credentials.json google_credentials.json
- cd -
# Configuration files
- cp config.js.example config.js
- cp config.js.example test/config.js
- cp config-build.js.example config-build.js
- cp config-server.js.example config-server.js
- cp test/config.yml.example test/config.yml
before_script:
- TRAVIS_JOB_NAME=$TRAVIS_JOB_NAME TRAVIS_BRANCH=$TRAVIS_BRANCH ./build.sh
- MAX_WEB_CURL=3000;
- WEB_CURL_COUNT=0; until curl --silent -I -f --fail http://localhost:3333 || (("$WEB_CURL_COUNT" == "$MAX_WEB_CURL")); do printf .; sleep 1; WEB_CURL_COUNT=$((++WEB_CURL_COUNT)); done; if [ "$WEB_CURL_COUNT" == "$MAX_WEB_CURL" ]; then echo "Terminating job after $WEB_CURL_COUNT curl attempts to check-web"; travis_terminate 1; fi
- docker-compose exec web npm run linter
- docker-compose exec web npm run test:integration:lint
jobs:
include:
- stage: tests
if: branch = develop OR branch = master OR commit_message =~ /\[full ci\]/ OR commit_message =~ /\[smoke tests\]/
name: integration-and-unit-tests
script:
- docker ps
- docker-compose exec web service nginx start
- docker-compose -f docker-compose.yml -f docker-test.yml exec chromedriver service nginx start
- docker-compose exec
-e IMGUR_CLIENT_ID=$IMGUR_CLIENT_ID
-e TRAVIS_JOB_NAME=$TRAVIS_JOB_NAME
-e TRAVIS_BRANCH=$TRAVIS_BRANCH
-e AWS_ENDPOINT=$AWS_ENDPOINT
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
-e AWS_REGION=$AWS_REGION
-e TEST_RETRY_COUNT=3
web npm run tests
- stage: tests
name: similarity-tests
if: branch = develop OR branch = master OR commit_message =~ /\[full ci\]/ OR commit_message =~ /\[similarity tests\]/
script:
- docker-compose exec web service nginx start
- docker-compose -f docker-compose.yml -f docker-test.yml exec chromedriver service nginx start
- docker-compose exec
-e IMGUR_CLIENT_ID=$IMGUR_CLIENT_ID
-e TRAVIS_JOB_NAME=$TRAVIS_JOB_NAME
-e TRAVIS_BRANCH=$TRAVIS_BRANCH
-e AWS_ENDPOINT=$AWS_ENDPOINT
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
-e AWS_REGION=$AWS_REGION
-e TEST_RETRY_COUNT=3
web npm run tests
- stage: tests
name: unit-tests
if: branch != develop AND branch != master AND NOT commit_message =~ /\[full ci\]/ AND NOT commit_message =~ /\[smoke tests\]/ AND NOT commit_message =~ /\[similarity tests\]/
script:
- docker-compose exec -e TRAVIS_JOB_NAME=$TRAVIS_JOB_NAME web npm run tests
after_script:
- docker-compose exec web bash -c "python -m json.tool test/file.json"
- size=$(du -k build/web/js/index.bundle.js | cut -f1) && size2=$(du -k build/web/js/vendor.bundle.js | cut -f1) && totalsize=$((size+size2)) && echo "Your bundle size is $totalsize kb"
- kill -9 $(pgrep ngrok)
notifications:
slack:
secure: TAPzV/OeN5hl8JSGrqPcAtFO/NWa9IqMbyzuUpCZgNP9EbobmlTPx55mopI647rwVIQZM1RL+2SapHJbT7XCAjJ+uvzSQd0b/LaS/aXLKFcS3bBDcvKAUeCcCYUiDz7x832EYg0fsVErR2dZPxvuPtWtwrOlOaOo8HB1uVHjvKo20Wnr/J4+VNTGvhQ5awdmpHMh+KrWpjQi4Ta9zWOTmSYh3qhgaLKjIKXanoaWen87VJB6Jy8nJ3Bo6t3r3+sbCRN9/LUZ8sVcJnvzlKdOtiLGkz8u2YG2c8UD+iUt2VOk0o5L/o8YPoeukJyFuAHAdLrjOelwHCAD2dRfrpQG7y/8G0vjJRXg8DRaVBVIl9vpYM6lyVIw5I6a9XDbUeOnBAWHE3uj/xH0X0vcRREE5py6tbt1KPUBS9rc8JGdCW3ZXVZAXA+1cijR3AAZUZ0YEf9WKLYhsTFW9lYlDcmkrWgVD9vbtPGDg95sbtuB+H5dkEAOBkf2YGkqzO+aaQKLDHkib/1v4C1+T5lXqlWZUrP8EuRwWs6xJlhi6w72AZLo7kVmfGA3ZdKfVcPCqr83YBfhL0WbwgT94L+5STELxw/PhsyNyOM/sRLQgR24ga/lcg2+L395VIPrQvhgKc26yHBuqW2P6FSOEGMyEcZ34N1TMTtRF7/lkRmXyKt4zuc=
env:
matrix:
- APP=check
global:
- secure: SHSKfib1p+bG7im65hi+mtjSP1JVHvsUGEuPI9yQsrVzLBJfVEXlEv8508js3LnLpzQensP3drrItfkb9P3bjH+vB1CyfgTIQcT5WbZbZfi6fKneQ3ldYjBSmzlu9pYnWra9GCWdy9ftORBBy3OP3kZn7a2CkQGpWd8TAVrr3gOST277fbQara0DxIc8/j5UTQDzBRag34ZvYPErK14dVrZlc9cDwA56MWlNmj7Q9ITzyyskOQH2Wx0Xm0qSBg4zlQ5LWOiijSVb5ijs4OpO2JEsZfh4TBjrq898r7tAEgeSx7ZG85Mfrakdv0w85+ymkp5dGK36EqYrNOcMhfLRsBNXkkUmDoELOYPhZNXZ9ZETkJnXz1UTWmB7KC+2/CjxkomtMIxX192kVOW1ZgchNCVgfEjBBZpq2PlTeCWO26PTIYodL4eMYp+0aSUWA0ePHgW+D6gunw5qKL/C4xeKtvI+OhR67g8eyAZ5RrTGUViUUuCA3xi3n9KXmX2WS1MVxaX7xE+I7+1+nH4r2nnQSIn3EPO9IKUFIXrX15OwistUPr9CzaUyG2KjtVwYB2lEwGU333RqDSg7GisqgeIVXrYYW4l1HdX7psBPMP06zg00OP3fkDmnIcsSKfbWSCpv+qzbRZr32n9VORVLxd6nfvjKRM2l40GJa3TAqZm0fxw=
- secure: OxOxd2Q07D1MWopP+L6Ckf6i3y8m7+pKKgmXYBSgfUJ7lNO7dl7/WQqS5cif1g2FNgZN+s99Zk0bwWoXxChmogHLH7nHkL8QGpJNMXYfgAKWR6wMhK43fWiR1SGNdu8X0d+Wt7yJoE3bUWMSZFKPuQyv6OVQUaFWKafGyQv5ZPP9iOjH3BGoHYL4lh72q9v+Bxs+hkWdtj8A8aXHTfBhm/1fBSxflHoosa5SBIcUmi/XRyWBxrZID2nrtz9+ixzQq8nwterWU2fM+Y24nPP1pt8finlta2v/haq11qzyaorm/bHN3KGNtVYDLA5znn9eUMyfWCu0e0xcdQUUKYonWnQNv5k9RCDBW9a6vPQAV/L93irx1xhHcKM6aahnCVKvmrHW6iD8SU7swAP+3KTZ4tOoCeo+sIgbzBicMSnjA4f9IwDwsS4DASg97j1uZe4w1h3eOJGt7qHNS7qg8uFQnqXGd/pIXizc+qmVdMaXpoLT7ATrkuY2LzLDsHNSduNpDio2SSoE0yY3V2h5JJl9VTFzyX8rj4MquiGWSEdr/f3N5cXRu9UKHbL8YIXCe01Umn2eTWhskvDglyWiKKEc2CrEsdmPQrVSq1z/5Ymwo012Nx8p3zwogAHHCV0AruCCHjklfYugznbxi2dOlRG75ck3+CzOkDE2CwH5l7BzB5E=
- secure: RJ6KVBKZvdrP2fYhnUj4Wj9sqGQwPiIkIsnue3LEmBLu46dsSCRr74SyFCw9hLRTjrXs5jhoe2ET+PzOt8jJDHz4ixvInwR72Q1ANfQwYj+FY2mL5O6kZEk4NaA9EACbS4uqxek+/PprOXQhaDlrgZKOjfPRa565SzrR8s3r/vwYPjRN2VEFLSYM4p57dEryghGgKI8dTh6p5P0q+oxOM6sG76OacABPGDuHl8InDME61lAgv2rbCBwtvcPy0MifYRnUBC3lwv2YM382HIbY0OtaKs1tuh4dZgdHzPA4xJdyT1CFMklkyoH2qeSQFb5iyLIaDI1egKClBRS5C7x2XFemVzAtIfbEw29dSLAFQruXAcKlyajVrz3VVuVoxtYuDvrJjRdjYq341QU0EQe3/vgwGgSkZ8l1XFX7yNi6GZnHib3zo90NgNVYIBEOYk8uOuz1sVRDLE1fL45uyZ0svJ2qJbbyjH2LycxANZh/sVQc+Vdo0FvUMPEAdHzs44tR3GkEKxRikMCHt00tHfwSIMyeCrg9A1qRtEYtDNYJPwmvyn/8vB9yoDZ8tIzlDRLOM8E7pTOAJJApLOs6CIjn8oNe/Arv9k+J4FK5DwUd7l2ZNhOLZHW1EcgDuP2kWr34ssux8TjZZtrIkAek04rmNEcccBvYGk5+bxECd92XKiU=
- secure: WtbsG4na6NHpHibPDvRc66YQKTuS76BqSRa4oDIazVkahGsGPnhrvlVTCPIbB62SOH5CsR2awEpeqEevqAnVuBk/TeEzGca1sVskIz5HKn/ihqGhIrI+ma0nb2jPFJUK0xKrMS/LPnU1k7eZSJJPnhQLEISfPR5CyG420lj+65iZacr1WAdk3/xkWwqmnXu47f5u+RmImd6WqkIGMi9Y+c8sieoTAmj+we1yB5uvTkP+kSw8ktznEA1ItP0elM2I6BYj9UHf6v12qYtx4ZSOCtS4VuNJkjb2iqgfpuYsBP4hEBUPbHlye2Ej6+nyFh4Be4dAxXOm6/lsMc0XYoBq9EYyNLHRdpu6gh0xYiAm+DEHPX75G2chTr5fztdZgMS99vHXr/C8f2bM0pB1cyCOYF701buIlIBmGZhRmC5O0m88sbo/l6sMjpicoUBjUXEwVeTDiaUDHn9kk+mZmWCEkMhq+ls33W4hOJDc7R5hG7dzokEZGryAWCmxFTxRCY79my8Va5/Tnk9tmADBIE9Hfm5ZRPf33HVCUpU4DdL7FXgUDHzAQuxuDD9KxsNhUqWwMKAkVBNyn3j5R9FitLM4UcsfGYDXgqNfaAvq1okk+ukgVp2ijHn8uekt4eEwYwa1s0ht7bgK06lS8vyJ5EoFbfjrkwVJluxS9b1bvc9qi1I=
- secure: GMroHn2UjzOatv1/mPgHD95xalKFWSYcVZoxbJlVjXu7Bn2w+T7bM4NDStlsu3kOU4PhcsYE9tz+L2je6wZv1dRS7DQRMD3pNS3kfRINpvw3BMbYriOPwDwwQkaXZbr5JR0dykrCq2F7SdFB//qPNf/+hD9pyNizPauEZOwMKZlJycrvOb+1pDpqr1FsYLjxvafYBW4PC4yI/AlE7cs/wkZhhpglU+NKUPTrLXPFUbiZ58/PaPXvtBTg3VavLOEantU8JyRNFjvVkhEtvEfFkKBPoxZIeJ8trT+o7dhJThf+RWlY/SBjpJrc/MhdyuxgsvawewSXaZqx+Fy6EH05XuwvJ6JgCwlhOXC9UY+SorwqSKxKj458l6FZBfHQEFYNla4rAWXuslY0tcAGbNOT7BCsgKTe99RoKI6Od/zfqu+8qrS9giaHgcPrObIKZGtkcHvI18e44zHCVhadY6MBuBQBcXDxKll588PKRRgQmTLi6xJXlK+1UfDp0KbYS/XBrrUEwwAHlZ5ZL2bzx3HHpeHDBRRSsyXJFFo+kEdhmS4xg2Qg8eZm4v9IpCYjUX/vltcoW2BpSXAGd1RaBa7/svwbifNF8ODypEYsVe7KTzmYnOIbsyFYO8mHjk5ysXTOzIoL19fT6YIABuwRr9G+4MgU1ITqXk4LEcM8V0Hx2B4=
- secure: URYEQWH4KXI6UDO9rS/D0UgSSmUnQ6lp55ga6CIycSSvEJ7m5qtUykwpfRW94wdm/zzMYtdHDawnQk5OCZpvU143Hz/3t0AfELZfNJilovLGe64W9JHxFrgvE0U56UlCpS2+n45EVm+X0+jLeDMiLmfEDPYsEgBxfaHq+fvYF3mv8zigO55MgraZLnRlYXgVdB9A7ZYo8uL4phxYf/sIoUSe9DzcyFhAOCpWdvzwPLV82EGrQ0FBf7EyfjdLkqmjJmqA5odNrMKejsQZ03ZNHivRDDoyMxH4ExunUhLzrrrMkP8OLkUJGpRgjWOnrWHCiwuiSYj2/RDrReJ/GOK1PGz88nGpYoEu+8C4DPOGW/k5LuCEQHmfE3dWsF8w+b0pJrsp1uMxDfy8JVZBbBNey5TrRbpVD4EIvXzIj1PAzL30uddPAYBHKmgGM58NWCOtzQlCG0H7FQQQopMp9jsjKR38Hv+IxkK7eULRN2Am75Sgw/EfVOpGBTXAdKpgKJuIK/wujP7OTGVzXuYrLMKo/ZrDKT3p1rZRTLWExo106rY7hj76xVvENgEhfPYCtdsZpMRalvDYc5v5FLX3YsTzgsh8jV10nM+nxJwOEaJTSuK6sv2/s8jeII8A62L23ETLVk8BJ/CxcMZ57g0slBYmg1xgtDe6/SWvtfkS9oZZO0U=