-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
199 lines (179 loc) · 6.53 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
language: php
php:
- 7.2
- 7.3
- 7.4
dist: xenial
# This helps builds go quicker on Travis since it enables caching of dependencies
# http://docs.travis-ci.com/user/workers/container-based-infrastructure/
sudo: false
# Do not limit history to latest commits. Merge commits will need older commits.
# Limiting depth caused issues with /.scripts/travis/check_commit_msgs.sh
#git:
# depth: 1
branches:
except:
- 1.0
- 1.5
- 1.6
- 1.7
- 1.8
matrix:
fast_finish: true
include:
# Commit message and lint
- php: 7.4
env: JOB_NAME=lint
install:
- composer travis:install
script:
- bash .scripts/travis/check_commit_msgs.sh
- composer lint
# Build and test javascript
- php: 7.4
env: JOB_NAME=js_tests
install:
- npm install -g yarn && yarn
before_script:
- composer travis:install
script:
- yarn test
# Build docs and check for errors
# Flags used here, not in `make html`:
# -n Run in nit-picky mode. Currently, this generates warnings for all missing references.
# -W Turn warnings into errors. This means that the build stops at the first warning and sphinx-build exits with exit status 1.
- php: 7.4
env: JOB_NAME=docs_build
install:
- pyenv global 3.7.1
- pip install --user "Sphinx==2.3.1"
- pip install --user "sphinx-intl"
- pip install --user "sphinxcontrib.phpdomain"
- export PATH=$PATH:$HOME/.local/bin
script:
- composer docs:build
# Memcached enabled
- php: 7.2
services:
- memcached
- mysql
env:
- JOB_NAME=memcache
- ELGG_MEMCACHE=1
- ELGG_MEMCACHE_SERVER1_HOST=127.0.0.1
- ELGG_MEMCACHE_SERVER1_PORT=11211
- ELGG_MEMCACHE_NAMESPACE_PREFIX=elgg_
before_install:
- phpenv config-rm xdebug.ini
- phpenv config-add ./.scripts/travis/memcached.ini
before_script:
- php -f ./.scripts/is_memcached_enabled.php
script:
- curl -s http://localhost:8888/ | tac | tac | grep -q "<title>Elgg Travis Site</title>"
- ./vendor/bin/phpunit
# Redis enabled
- php: 7.2
services:
- redis-server
- mysql
env:
- JOB_NAME=redis
- ELGG_REDIS=1
- ELGG_REDIS_SERVER1_HOST=127.0.0.1
- ELGG_REDIS_SERVER1_PORT=6379
before_install:
- phpenv config-rm xdebug.ini
- phpenv config-add ./.scripts/travis/redis.ini
before_script:
- php -f ./.scripts/is_redis_enabled.php
script:
- curl -s http://localhost:8888/ | tac | tac | grep -q "<title>Elgg Travis Site</title>"
- ./vendor/bin/phpunit
# Test upgrade path from 2.3
# uses trusty dist to also test MySQL 5.6
- php: 7.2
dist: trusty
env: JOB_NAME=upgrade_from_Elgg2
install:
- git fetch origin 2.3
- git checkout FETCH_HEAD
- composer travis:install-with-mysql
- php -f ./.scripts/travis/enable_plugins.php
- php -f ./.scripts/seeder/seed.php # can't use elgg-cli because it's a 2.3 install
- git checkout -
- composer update --prefer-dist --no-suggest # using composer update to make sure we have latest dependencies like in the starter project (zip)
- php ./elgg-cli upgrade async --verbose
- php -S localhost:8888 -c ./.scripts/travis/local_php_server.ini index.php &
- sleep 3 # give Web server some time to bind to sockets, etc
script:
- curl -s http://localhost:8888/ | tac | tac | grep -q "<title>Elgg Travis Site</title>"
- ./vendor/bin/phpunit
# MySql 8.0
# setup according to https://www.tekz.io/blog/travis-ci-running-tests-on-mysql-8-0-x-on-ubuntu-xenial
- php: 7.4
env: JOB_NAME=mysql80
sudo: true
before_install:
- phpenv config-rm xdebug.ini
- wget https://repo.mysql.com/mysql-apt-config_0.8.10-1_all.deb
- sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
- sudo apt-get update -q
- sudo apt-get install -q -y --allow-unauthenticated -o Dpkg::Options::=--force-confnew mysql-server
- sudo systemctl restart mysql
- sudo mysql_upgrade
- mysqld --version
- mysql --version
install:
- composer travis:install-with-mysql8
- php -f ./.scripts/travis/enable_plugins.php
- php ./elgg-cli database:seed --limit=5 --image_folder=./.scripts/seeder/images/ -vv
- php -S localhost:8888 -c ./.scripts/travis/local_php_server.ini index.php &
- sleep 3 # give Web server some time to bind to sockets, etc
script:
- curl -s http://localhost:8888/ | tac | tac | grep -q "<title>Elgg Travis Site</title>"
- ./vendor/bin/phpunit --testsuite integration
- ./vendor/bin/phpunit --testsuite plugins-integration
# HHVM not officially supported https://github.com/Elgg/Elgg/issues/11185
services:
- mysql
before_install:
- mysqld --version
- mysql --version
- phpenv config-rm xdebug.ini
install:
- composer travis:install-with-mysql
- php -f ./.scripts/travis/enable_plugins.php
- php ./elgg-cli database:seed --limit=5 --image_folder=./.scripts/seeder/images/ -vv
- php -S localhost:8888 -c ./.scripts/travis/local_php_server.ini index.php &
- sleep 3 # give Web server some time to bind to sockets, etc
script:
- curl -s http://localhost:8888/ | tac | tac | grep -q "<title>Elgg Travis Site</title>"
# in this build, we want to make sure the test suites can bootstrap on their own
# combined test runner is executed in e2e builds
- ./vendor/bin/phpunit --testsuite unit
- ./vendor/bin/phpunit --testsuite integration
- ./vendor/bin/phpunit --testsuite plugins-unit
- ./vendor/bin/phpunit --testsuite plugins-integration
after_script:
- php ./elgg-cli database:unseed -vv
notifications:
email:
secure: exC/ws07lLOj3Y43C89jiaKpyB8Yt7DPGSCShV4R3Wkw/hVVzjxt1BinPxzsyL5DC7APUMcTHGOhDB2oCE4ynDE6o6L9bH79fc+V8IYAiNaEIGL0AOuHdnRdGN9GMrr2jv78cZ5MctuUTkeYLaoOEyDGHmkMhqa6SufIDAY8b58=
webhooks:
urls:
- secure: "Ug81+4Fa2UFZetSCV79OWOgYi4uVgNQ6rVrVn2HElddOMDwuHxo9CYKoA3Q+joPKMtNFCN2qkMyoyUfIMM83uJi1LmaUx/c7lR1pXBFVgc4Xyt114NcY80I4OCWWKg0G1FDlSiaXil922JjeC3MekYoqjsIyUgabGihe6j7DWz0="
on_start: true
env:
global:
- ELGG_DB_PREFIX=t_i_elgg_
- ELGG_DB_HOST=localhost
- ELGG_DB_NAME=elgg
- ELGG_DB_USER=root
- ELGG_DB_PASS=password
- ELGG_WWWROOT=http://localhost:8888/
## Cache dependencies
cache:
yarn: true
directories:
- $HOME/.composer/cache
- $HOME/.npm