forked from wprig/wprig
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
136 lines (117 loc) · 4.17 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
# Travis CI (MIT License) configuration file for the WP Rig WordPress theme development rig.
# @link https://travis-ci.org/
# For use with the WP Rig WordPress theme development rig.
# @link https://github.com/wprig/wprig
# Ditch sudo and use containers.
# @link https://docs.travis-ci.com/user/migrating-from-legacy/#Why-migrate-to-container-based-infrastructure%3F
# @link https://docs.travis-ci.com/user/workers/container-based-infrastructure/#Routing-your-build-to-container-based-infrastructure
sudo: false
dist: trusty
# Declare project language.
# @link https://about.travis-ci.org/docs/user/languages/php/
language: php
# Declare versions of PHP to use. Use one decimal max.
# @link https://docs.travis-ci.com/user/build-configuration/
matrix:
fast_finish: true
include:
- php: 7.3
env: UNIT=1 SNIFF=1 TEST_GULP=1
- php: 7.0
env: UNIT=1
- php: 7.3
env: INTEGRATION=1 WP_VERSION=latest
- php: 7.3
env: INTEGRATION=1 WP_VERSION=4.5
- php: nightly
env: UNIT=1
- php: 7.3
env: INTEGRATION=1 WP_VERSION=master
allow_failures:
- php: nightly
env: UNIT=1
- php: 7.3
env: INTEGRATION=1 WP_VERSION=master
# Use this to prepare the system to install prerequisites or dependencies.
# e.g. sudo apt-get update.
# Failures in this section will result in build status 'errored'.
before_install:
# Install Composer dependencies.
- |
if [[ ( "$SNIFF" == "1" ) || ( "$UNIT" == "1" ) || ( "$INTEGRATION" == "1" ) ]]; then
composer install;
fi
# Install NPM dependencies.
- |
if [[ ( "$SNIFF" == "1" ) || ( "$TEST_GULP" == "1" ) ]]; then
npm install;
fi
# Use this to prepare your build for testing.
# e.g. copy database configurations, environment variables, etc.
# Failures in this section will result in build status 'errored'.
before_script:
# Speed up build time by disabling Xdebug.
- phpenv config-rm xdebug.ini || echo 'No xdebug config.'
# Pull in the WP Core jshint rules.
- |
if [[ "$SNIFF" == "1" ]]; then
wget https://develop.svn.wordpress.org/trunk/.jshintrc;
fi
# Setup WordPress core test suite for integration.
- |
if [[ "$INTEGRATION" == "1" ]]; then
if [[ "$WP_VERSION" == "latest" ]]; then
curl -s http://api.wordpress.org/core/version-check/1.7/ > /tmp/wp-latest.json
WP_VERSION=$(grep -o '"version":"[^"]*' /tmp/wp-latest.json | sed 's/"version":"//')
fi
THEME_SLUG=$(basename $(pwd))
export WP_DEVELOP_DIR=/tmp/wordpress/
git clone --depth=50 --branch="$WP_VERSION" git://develop.git.wordpress.org/ /tmp/wordpress
cd ..
cp -r "$THEME_SLUG" "/tmp/wordpress/src/wp-content/themes/$THEME_SLUG"
cd /tmp/wordpress/
cp wp-tests-config-sample.php wp-tests-config.php
sed -i "s/youremptytestdbnamehere/wordpress_tests/" wp-tests-config.php
sed -i "s/yourusernamehere/travis/" wp-tests-config.php
sed -i "s/yourpasswordhere//" wp-tests-config.php
mysql -e "CREATE DATABASE wordpress_tests;" -uroot
cd "/tmp/wordpress/src/wp-content/themes/$THEME_SLUG"
fi
# After setup you should refresh your path.
- phpenv rehash;
# Run test script commands.
# Default is specific to project language.
# All commands must exit with code 0 on success. Anything else is considered failure.
script:
# Search for PHP syntax errors.
- find -L . -name '*.php' ! -path "*/vendor/*" -print0 | xargs -0 -n 1 -P 4 php -l
# Check the theme against WordPress Coding Standards.
- |
if [[ "$SNIFF" == "1" ]]; then
composer run-script phpcs-dev
fi
# Run the theme through JavaScript Code Style checker.
- |
if [[ "$SNIFF" == "1" ]]; then
$(npm bin)/eslint .;
fi
# Run the unit tests.
- |
if [[ "$UNIT" == "1" ]]; then
composer run-script phpunit-dev
fi
# Run the integration tests.
- |
if [[ "$INTEGRATION" == "1" ]]; then
composer run-script phpunit-integration-dev
fi
# Run the gulp tests.
- |
if [[ "$TEST_GULP" == "1" ]]; then
npm run lint:gulp
npm run test:gulp
fi
# Receive notifications for build results.
# @link https://docs.travis-ci.com/user/notifications/#Email-notifications
notifications:
email: false