forked from digitoimistodude/air-light
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
117 lines (106 loc) · 5.95 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
# Travis CI (MIT License) configuration file for the Air-light WordPress theme.
# @link https://travis-ci.com/
# For use with the Air-light WordPress theme.
# @link https://github.com/digitoimistodude/air-light
# 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: required
dist: xenial
# Declare project language.
# @link https://about.travis-ci.com/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:
# aliased to a recent 7.2.x version
- php: '7.2'
env: SNIFF=1
# bleeding edge PHP
- php: 'nightly'
allow_failures:
- php: 'nightly'
# 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:
- sudo rm -rf ~/.nvm
- curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
- sudo apt-get install -y nodejs
- if [[ `node -v` != v10* ]]; then nvm install stable; fi
- nvm install-latest-npm
- nvm install 10.22.0
- nvm use 10.22.0
# 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.'
# Set up temporary paths.
- if [[ "$SNIFF" == "1" ]]; then export PHPCS_DIR=/tmp/phpcs; fi
- if [[ "$SNIFF" == "1" ]]; then export WPCS_DIR=/tmp/wpcs; fi
- if [[ "$SNIFF" == "1" ]]; then export PHPCOMPAT_DIR=/tmp/phpcompatibility; fi
- if [[ "$SNIFF" == "1" ]]; then export SNIFFS_DIR=/tmp/sniffs; fi
# Install PHP_CodeSniffer.
- if [[ "$SNIFF" == "1" ]]; then git clone -b master --depth 1 https://github.com/squizlabs/PHP_CodeSniffer.git $PHPCS_DIR; fi
# Install WordPress Coding Standards.
- if [[ "$SNIFF" == "1" ]]; then git clone -b 2.2.1 --depth 1 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git $WPCS_DIR; fi
# Set install path for WordPress Coding Standards.
- if [[ "$SNIFF" == "1" ]]; then $PHPCS_DIR/bin/phpcs --config-set installed_paths $WPCS_DIR,$PHPCOMPAT_DIR,$SNIFFS_DIR; fi
# After CodeSniffer install you should refresh your path.
- if [[ "$SNIFF" == "1" ]]; then phpenv rehash; fi
# Install PHP Compatibility sniffs.
- if [[ "$SNIFF" == "1" ]]; then git clone -b master --depth 1 https://github.com/wimg/PHPCompatibility.git $PHPCOMPAT_DIR; fi
# Pull in the Air-light phpcs rules.
- if [[ "$SNIFF" == "1" ]]; then wget https://raw.githubusercontent.com/digitoimistodude/air-light/master/phpcs.xml; fi
# Install JSCS: JavaScript Code Style checker.
# @link http://jscs.info/
# - if [[ "$SNIFF" == "1" ]]; then npm install -g jscs; fi
# Pull in the Air-light eslint rules.
- if [[ "$SNIFF" == "1" ]]; then wget https://raw.githubusercontent.com/digitoimistodude/air-light/master/.eslintrc.js; fi
# Install JSHint, a JavaScript Code Quality Tool.
# @link http://jshint.com/docs/
# - if [[ "$SNIFF" == "1" ]]; then npm install -g jshint; fi
# Pull in the WP Core jshint rules.
# - if [[ "$SNIFF" == "1" ]]; then wget https://develop.svn.wordpress.org/trunk/.jshintrc; fi
# Install eslint.
# @link https://eslint.org/
- if [[ "$SNIFF" == "1" ]]; then npm i -g eslint; fi
# Install stylelint.
# @link https://stylelint.io/
- if [[ "$SNIFF" == "1" ]]; then npm i -g stylelint; fi
# Pull in the Air-light stylelint rules.
- if [[ "$SNIFF" == "1" ]]; then wget https://raw.githubusercontent.com/digitoimistodude/air-light/master/.stylelintrc; fi
# 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' -print0 | xargs -0 -n 1 -P 4 php -l
# Run the theme through JSHint.
# - if [[ "$SNIFF" == "1" ]]; then jshint .; fi
# Run the theme through JavaScript Code Style checker.
# - if [[ "$SNIFF" == "1" ]]; then jscs .; fi
# Run the theme through Eslint.
- if [[ "$SNIFF" == "1" ]]; then npm i --save-dev eslint babel-eslint babel-loader babel-preset-airbnb eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks; fi
- if [[ "$SNIFF" == "1" ]]; then npm i --save airbnb-browser-shims; fi
- if [[ "$SNIFF" == "1" ]]; then npm link eslint; fi
- if [[ "$SNIFF" == "1" ]]; then eslint .; fi
# Run against WordPress Coding Standards.
# If you use a custom ruleset, change `--standard=WordPress` to point to your ruleset file,
# for example: `--standard=wpcs.xml`.
# You can use any of the normal PHPCS command line arguments in the command:
# https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage
- if [[ "$SNIFF" == "1" ]]; then $PHPCS_DIR/bin/phpcs -p . --ignore=node_modules,*/css/* --standard=phpcs.xml; fi
# Run the theme through stylelint.
- if [[ "$SNIFF" == "1" ]]; then npm i --save-dev postcss stylelint stylelint-a11y stylelint-order stylelint-config-recommended-scss stylelint-config-recommended stylelint-config-standard stylelint-declaration-use-variable stylelint-order stylelint-scss stylelint-value-no-unknown-custom-properties; fi
- if [[ "$SNIFF" == "1" ]]; then npm link postcss; fi
- if [[ "$SNIFF" == "1" ]]; then npm link stylelint; fi
- if [[ "$SNIFF" == "1" ]]; then stylelint . --max-warnings 0; fi
# Receive notifications for build results.
# @link https://docs.travis-ci.com/user/notifications/#Email-notifications
notifications:
email: true