forked from docksal/docksal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
90 lines (84 loc) · 3.77 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
dist: xenial
language: minimal
env:
global:
# Explicitly disable host's SSH agent usage
# TODO: Add test coverage for both ssh-agent modes (built-in and host ssh-agent)
- DOCKSAL_SSH_AGENT_USE_HOST=0
matrix:
- PROVIDER=none
- PROVIDER=acquia
- PROVIDER=pantheon
- PROVIDER=platform
- PROVIDER=drush
- PROVIDER=wp
install:
# Short a provider build if pull tests are disabled
- if [[ "${PROVIDER}" != "none" ]] && [[ "${RUN_PULL_TESTS}" == "0" ]]; then exit; fi
- echo "${SSH_KEY}" | base64 --decode > $HOME/.ssh/project_key
- chmod 400 $HOME/.ssh/project_key
- git clone https://github.com/docksal/bats.git tests/scripts/bats
- cd tests/scripts/bats
- sudo ./install.sh /usr/local
- cd "$TRAVIS_BUILD_DIR"
- sudo cp ./bin/fin /usr/local/bin/fin
- fin version
- USE_BRANCH="${TRAVIS_BRANCH}"
- if [[ "$TRAVIS_PULL_REQUEST" != "false" && "${TRAVIS_PULL_REQUEST_SLUG}" == "${TRAVIS_REPO_SLUG}" ]]; then USE_BRANCH="${TRAVIS_PULL_REQUEST_BRANCH}"; fi
- if [[ "$TRAVIS_PULL_REQUEST" != "false" && "${TRAVIS_PULL_REQUEST_SLUG}" != "${TRAVIS_REPO_SLUG}" ]]; then USE_BRANCH='develop'; fi
- export DOCKSAL_VERSION=${USE_BRANCH}
- fin update
- fin sysinfo
before_script:
- |
if [[ "${PROVIDER}" == "none" ]]; then
git clone https://github.com/docksal/drupal8.git ../drupal8
mkdir ../test-config
mkdir ../test-duplicates
mkdir ../test-init
mkdir ../test-db
else
mkdir ../test-pull
fi
# Function runs tests by file name $1 in dir specified in $2
- run_tests() { cd "${2:-$TRAVIS_BUILD_DIR}"; [[ "$TRAVIS_COMMIT_MESSAGE" =~ "[quick-test]" && "$1" != "quicktest.bats" ]] && return; [[ "$1" == "quicktest.bats" ]] && I="-i"; bats ${I} "$TRAVIS_BUILD_DIR/tests/$1"; }
# Trigger builds in boilerplate project repos
- build_trigger() { [[ "$TRAVIS_BRANCH" == "master" ]] && cd "$TRAVIS_BUILD_DIR" && tests/scripts/travisci-build-trigger "$1"; }
- echo "Running tests..."
script:
# Keeping these as separate commands to see individual timing for each in build logs
- if [[ "${PROVIDER}" == "none" ]]; then run_tests system.bats; fi
- if [[ "${PROVIDER}" == "none" ]]; then run_tests config.bats "$TRAVIS_BUILD_DIR/../test-config"; fi
- if [[ "${PROVIDER}" == "none" ]]; then run_tests general.bats "$TRAVIS_BUILD_DIR/../drupal8"; fi
- if [[ "${PROVIDER}" == "none" ]]; then run_tests db.bats "$TRAVIS_BUILD_DIR/../test-db"; fi
- if [[ "${PROVIDER}" == "none" ]]; then run_tests duplicates.bats "$TRAVIS_BUILD_DIR/../test-duplicates"; fi
- if [[ "${PROVIDER}" == "none" ]]; then run_tests quicktest.bats; fi
- |
if [[ "${PROVIDER}" != "none" ]]; then
# Run add project_key to Agent for fin pull tests.
fin ssh-key add project_key
# Configure provider API keys
if [[ "${PROVIDER}" == "acquia" ]]; then
fin config set --global "SECRET_ACAPI_EMAIL=${SECRET_ACAPI_EMAIL}"
fin config set --global "SECRET_ACAPI_KEY=${SECRET_ACAPI_KEY}"
fi
if [[ "${PROVIDER}" == "pantheon" ]]; then
fin config set --global "SECRET_TERMINUS_TOKEN=${SECRET_TERMINUS_TOKEN}"
fi
if [[ "${PROVIDER}" == "platform" ]]; then
fin config set --global "SECRET_PLATFORMSH_CLI_TOKEN=${SECRET_PLATFORMSH_CLI_TOKEN}"
fi
# Run provider pull tests
run_tests pull/${PROVIDER}.bats "$TRAVIS_BUILD_DIR/../test-pull"
fi
after_success:
# Trigger boilerplate repo builds to verify nothing breaks there
- |
if [[ "${PROVIDER}" == "none" ]]; then
build_trigger docksal/boilerplate-drupal7
build_trigger docksal/boilerplate-drupal7-advanced
build_trigger docksal/boilerplate-drupal8
build_trigger docksal/boilerplate-wordpress
build_trigger docksal/boilerplate-magento
build_trigger docksal/boilerplate-magento-demo
fi