-
Notifications
You must be signed in to change notification settings - Fork 37
/
.travis.yml
227 lines (191 loc) · 8.69 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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
# @file
# Internal drupal_ti file, use .travis.yml.dist for your drupal projects.
#
# =============================================
# WARNING: USE .travis.yml.dist INSTEAD.
# =============================================
#
# Based for simpletest upon:
# https://github.com/sonnym/travis-ci-drupal-module-example
language: php
sudo: false
php:
- 5.3
- 5.4
- 5.5
- 5.6
- 7
- hhvm
branches:
only:
- "master"
cache:
apt: true
directories:
- $HOME/drupal-ti-cache
matrix:
fast_finish: true
allow_failures:
- php: hhvm
exclude:
# Drupal-8 does not work on PHP 5.3 or PHP 5.4.
- php: 5.3
env: DRUPAL_TI_RUNNERS="test phpunit phpunit-core simpletest behat" DRUPAL_TI_ENVIRONMENT="drupal-8" DRUPAL_TI_SAVE_CACHE="0"
- php: 5.4
env: DRUPAL_TI_RUNNERS="test phpunit phpunit-core simpletest behat" DRUPAL_TI_ENVIRONMENT="drupal-8" DRUPAL_TI_SAVE_CACHE="0"
include:
# Test single runners on PHP 5.4.
- php: 5.4
env: DRUPAL_TI_RUNNERS="phpunit" DRUPAL_TI_ENVIRONMENT="drupal-7" DRUPAL_TI_SAVE_CACHE="0"
- php: 5.4
env: DRUPAL_TI_RUNNERS="simpletest" DRUPAL_TI_ENVIRONMENT="drupal-7" DRUPAL_TI_SAVE_CACHE="0"
- php: 5.4
env: DRUPAL_TI_RUNNERS="behat" DRUPAL_TI_ENVIRONMENT="drupal-7" DRUPAL_TI_SAVE_CACHE="0"
# Test selenium and firefox / chrome browsers.
- php: 5.4
env: DRUPAL_TI_BEHAT_DRIVER="selenium" DRUPAL_TI_BEHAT_BROWSER="firefox" DRUPAL_TI_RUNNERS="behat" DRUPAL_TI_ENVIRONMENT="drupal-7" DRUPAL_TI_SAVE_CACHE="0"
- php: 5.4
env: DRUPAL_TI_BEHAT_DRIVER="selenium" DRUPAL_TI_BEHAT_BROWSER="chrome" DRUPAL_TI_RUNNERS="behat" DRUPAL_TI_ENVIRONMENT="drupal-7" DRUPAL_TI_SAVE_CACHE="0"
# Test phpunit-core in isolation.
- php: 5.5
env: DRUPAL_TI_RUNNERS="phpunit-core" DRUPAL_TI_ENVIRONMENT="drupal-8" DRUPAL_TI_SAVE_CACHE="0"
# Test working hhvm tests.
- php: hhvm
env: DRUPAL_TI_RUNNERS="phpunit behat" DRUPAL_TI_ENVIRONMENT="drupal-8" DRUPAL_TI_SAVE_CACHE="0"
env:
global:
# add composer's global bin directory to the path
# see: https://github.com/drush-ops/drush#install---composer
- PATH="$PATH:$HOME/.composer/vendor/bin"
# Configuration variables.
- DRUPAL_TI_MODULE_NAME="drupal_ti_test"
# Note: This is customized for drupal-8 environment in
# tests/drupal-8/drupal_ti_test/tests/drupal_ti/before/environments/drupal-8.sh.
- DRUPAL_TI_SIMPLETEST_GROUP="DrupalTi Test"
# Define runners and environment vars to include before and after the
# main runners / environment vars.
- DRUPAL_TI_SCRIPT_DIR_BEFORE="./drupal_ti/before"
#- DRUPAL_TI_SCRIPT_DIR_AFTER="./drupal_ti/after"
# The environment to use, supported are: drupal-7, drupal-8
#- DRUPAL_TI_ENVIRONMENT="drupal-7"
# The drush version to use, by default: drush/drush:8.0.*
# - DRUPAL_TI_DRUSH_VERSION="drush/drush:~9.0"
# The installation profile to use:
#
# Note: This is customized for drupal-8 environment in
# tests/drupal-8/drupal_ti_test/tests/drupal_ti/before/environments/drupal-8.sh.
#
# The reason is that behat strongly depends on a logout link being present,
# but minimal does not have one.
#
#- DRUPAL_TI_INSTALL_PROFILE="testing"
# Drupal specific variables.
- DRUPAL_TI_DB="drupal_travis_db"
- DRUPAL_TI_DB_URL="mysql://root:@127.0.0.1/drupal_travis_db"
# Note: Do not add a trailing slash here.
- DRUPAL_TI_WEBSERVER_URL="http://127.0.0.1"
- DRUPAL_TI_WEBSERVER_PORT="8080"
# Simpletest specific commandline arguments, the DRUPAL_TI_SIMPLETEST_GROUP is appended at the end.
- DRUPAL_TI_SIMPLETEST_ARGS="--verbose --color --concurrency 4 --url $DRUPAL_TI_WEBSERVER_URL:$DRUPAL_TI_WEBSERVER_PORT"
# === Behat specific variables.
# This is relative to $TRAVIS_BUILD_DIR
- DRUPAL_TI_BEHAT_DIR="./tests/behat"
# These arguments are passed to the bin/behat command.
- DRUPAL_TI_BEHAT_ARGS=""
# Specify the filename of the behat.yml with the $DRUPAL_TI_DRUPAL_DIR variables.
- DRUPAL_TI_BEHAT_YML="behat.yml.dist"
# This is used to setup Xvfb.
- DRUPAL_TI_BEHAT_SCREENSIZE_COLOR="1280x1024x16"
# The version of selenium that should be used.
- DRUPAL_TI_BEHAT_SELENIUM_VERSION="2.48.2"
# Set DRUPAL_TI_BEHAT_DRIVER to "selenium" to use "firefox" or "chrome" here.
- DRUPAL_TI_BEHAT_DRIVER="phantomjs"
- DRUPAL_TI_BEHAT_BROWSER="firefox"
# PHPUnit specific commandline arguments.
# Specifying the phpunit version you want to use
# - DRUPAL_TI_PHPUNIT_VERSION="^7.0"
- DRUPAL_TI_PHPUNIT_ARGS=""
# Specifying the phpunit-core src/ directory is useful when e.g. a vendor/
# directory is present in the module directory, which phpunit would then
# try to find tests in. This option is relative to $TRAVIS_BUILD_DIR.
- DRUPAL_TI_PHPUNIT_CORE_SRC_DIRECTORY="./tests/src"
# Code coverage via coveralls.io
- DRUPAL_TI_COVERAGE="satooshi/php-coveralls:0.6.*"
# This needs to match your .coveralls.yml file.
- DRUPAL_TI_COVERAGE_FILE="build/logs/clover.xml"
# Debug options
#- DRUPAL_TI_DEBUG="-x -v"
# Set to "all" to output all files, set to e.g. "xvfb selenium" or "selenium",
# etc. to only output those channels.
- DRUPAL_TI_DEBUG_FILE_OUTPUT="selenium xvfb webserver hhvm"
# Cache options
# Use this variable to use another cache directory, usually not needed to be changed.
- DRUPAL_TI_CACHE_DIR="$HOME/drupal-ti-cache/"
# Set to 0 or comment out to disable cache loading.
- DRUPAL_TI_LOAD_CACHE="1"
# Set to 0 to disable cache saving, useful with many variants.
# Note: Setting this to "0" will remove the .casher directory to
# avoid race conditions between builds.
- DRUPAL_TI_SAVE_CACHE="1"
# Setup dirs to cache relative to another environment variable.
- DRUPAL_TI_CACHE_DIRS_HOME=".composer|.drush|.dist"
- DRUPAL_TI_CACHE_DIRS_TRAVIS_BUILD_DIR="tests/vendor|tests/behat/vendor"
# Pin to Chrome 56 because newer isn't supported on Ubuntu 12.04.
- DRUPAL_TI_BEHAT_CHROME_URL="http://www.slimjetbrowser.com/chrome/lnx/chrome64_56.0.2924.87.deb"
- DRUPAL_TI_BEHAT_CHROMEDRIVER_VERSION="2.27"
matrix:
# Ensure that runners work isolated.
#- DRUPAL_TI_RUNNERS="phpunit" DRUPAL_TI_ENVIRONMENT="drupal-7"
#- DRUPAL_TI_RUNNERS="simpletest" DRUPAL_TI_ENVIRONMENT="drupal-7"
#- DRUPAL_TI_RUNNERS="behat" DRUPAL_TI_ENVIRONMENT="drupal-7"
# And in combination.
- DRUPAL_TI_RUNNERS="test phpunit simpletest behat" DRUPAL_TI_ENVIRONMENT="drupal-7"
- DRUPAL_TI_RUNNERS="test phpunit phpunit-core simpletest behat" DRUPAL_TI_ENVIRONMENT="drupal-8" DRUPAL_TI_SAVE_CACHE="0"
mysql:
database: drupal_travis_db
username: root
encoding: utf8
before_install:
# Restore home directory from cache.
- mkdir -p "$DRUPAL_TI_CACHE_DIR"/HOME
- if [ "$DRUPAL_TI_LOAD_CACHE" = "1" ]; then rsync -a "$DRUPAL_TI_CACHE_DIR"/HOME/ "$HOME/"; fi
# Update composer.
- composer self-update
# - composer global require LionsAd/drupal_ti:dev-master
- mkdir -p "$HOME/.composer/vendor/bin"
- ln -sf $(pwd)/drupal-ti "$HOME/.composer/vendor/bin"
- cd "./tests/$DRUPAL_TI_ENVIRONMENT/drupal_ti_test"
# Save the root dir for the tests runner.
- export DRUPAL_TI_TESTS_DIR="$TRAVIS_BUILD_DIR"
- export TRAVIS_BUILD_DIR=$(pwd)
# Now we are setup like the things we want to test.
- cd ./tests
# Restore caches from $DRUPAL_TI_CACHE_DIR/TRAVIS_BUILD_DIR to $TRAVIS_BUILD_DIR
# Note: HOME dir was already synced manually above.
- drupal-ti --load-cache TRAVIS_BUILD_DIR
- drupal-ti before_install
install:
- drupal-ti install
before_script:
- drupal-ti --include ../scripts/test-include.sh
- drupal-ti before_script
script:
- drupal-ti script
# Syncs $DRUPAL_TI_CACHE_DIRS_{*} to $DRUPAL_TI_CACHE_DIR/{*}
# Has internal optimizations for .composer and .drush.
- drupal-ti --save-cache TRAVIS_BUILD_DIR HOME
# Do some manual caching as well
- if [ "$DRUPAL_TI_SAVE_CACHE" = "1" ]; then rsync -a composer.{json,lock} "$DRUPAL_TI_CACHE_DIR"/TRAVIS_BUILD_DIR/tests/; fi
# Delete composer generated files that screw up cache detection.
- rm -f "$DRUPAL_TI_CACHE_DIR"/TRAVIS_BUILD_DIR/tests/.composer/vendor/composer/*.php
- rm -f "$DRUPAL_TI_CACHE_DIR"/TRAVIS_BUILD_DIR/tests/.composer/vendor/autoload.php
# Delete composer generated behat files that screw up cache detection.
- rm -f "$DRUPAL_TI_CACHE_DIR"/TRAVIS_BUILD_DIR/tests/behat/.composer/vendor/composer/*.php
- rm -f "$DRUPAL_TI_CACHE_DIR"/TRAVIS_BUILD_DIR/tests/behat/.composer/vendor/autoload.php
# Tests for differences and touches a file if any are detected (optional).
- du -sh "$DRUPAL_TI_CACHE_DIR"
- drupal-ti --sync-cache
after_script:
- drupal-ti after_script
notifications:
email: false