forked from mantl/mantl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
44 lines (41 loc) · 2.52 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
language: python
env:
global:
- TF_VAR_build_number=${TRAVIS_JOB_NUMBER/./-}
- DOCKER_ARGS='-i -a stdout -a stderr -e TF_VAR_build_number -e CI_HEAD_COMMIT -e TRAVIS_COMMIT_RANGE -e TRAVIS_REPO_SLUG -e TRAVIS_BRANCH -e TRAVIS_PULL_REQUEST -e TERRAFORM_FILE -e MANTL_CI_FORK_CHECK'
- DOCKER_IMAGE=sehqlr/mantl:testing
- MANTL_CI_FORK_CHECK=0
matrix:
- TERRAFORM_FILE=testing/aws.tf DOCKER_SECRETS='-e AWS_SECRET_ACCESS_KEY -e AWS_ACCESS_KEY_ID'
- TERRAFORM_FILE=testing/do.tf DOCKER_SECRETS='-e DIGITALOCEAN_TOKEN'
- TERRAFORM_FILE=testing/gce.tf DOCKER_SECRETS='-e GOOGLE_CREDENTIALS'
before_script:
- export CI_HEAD_COMMIT=$(git rev-list -n 1 --no-merges --branches="$(git rev-parse --abbrev-ref HEAD)" master...HEAD)
- echo $CI_HEAD_COMMIT
- docker pull $DOCKER_IMAGE
- docker run $DOCKER_ARGS -v $(pwd)/testing:/local -v $(pwd):/mantl $DOCKER_SECRETS $DOCKER_IMAGE "python2 docker.py ci-setup"
script:
- python2 testing/test-health-checks.py
- docker run $DOCKER_ARGS -v $(pwd)/testing:/local -v $(pwd):/mantl $DOCKER_SECRETS $DOCKER_IMAGE "python docker.py ci-build"
after_script:
- docker run $DOCKER_ARGS -v $(pwd)/testing:/local -v $(pwd):/mantl $DOCKER_SECRETS
$DOCKER_IMAGE "python docker.py ci-destroy"
sudo: required
services:
- docker
addons:
apt:
packages:
- unzip
notifications:
slack:
secure: eX3VgtKQ48rzKGdXpIZZVYINffI2wbqhqoJFUxHO1Zku6tXzbt0R+r3NVHo37wBID63bkXjYqjZuv+JRUtvf/XO51+QkTqCCZ6iC3lr6IEqRpzxXsmNYf+QPhuN2kvVTSyycHFXdwQLL7sCniFSmEcLdu6xMpobI4PUwi2OvHj4=
before_install:
# ARE_SECRETS_AVAILABLE is as a secret env var that I added to Travis via Settings.
# It does not contain any actual secrets/data, but it's only exported to the Travis build environment when our other deploy secrets are available
# MANTL_CI_FORK_CHECK is read by the ci-setup step, and if it's equals 1, it skips the test altogether with exit code 0 before any deploy steps are run
- if [ -z "$ARE_SECRETS_AVAILABLE" ]; then MANTL_CI_FORK_CHECK=1; else MANTL_CI_FORK_CHECK=0; fi
# the string "openssl ... testing/ci" was copied from the output that I got from using the travis cli to encrypt files
# the documentation for encrypting files is here: https://docs.travis-ci.com/user/encrypting-files/
# the cli tool will append the whole command as its own item; I wrapped that line with the if statement below
- if [ -n "$ARE_SECRETS_AVAILABLE" ]; then openssl aes-256-cbc -K $encrypted_6a9d32f3e0bd_key -iv $encrypted_6a9d32f3e0bd_iv -in ci.enc -out testing/ci; else echo "Secrets not available...skipping"; fi