Skip to content

Commit 29d8271

Browse files
committed
Added circleci config file for new CD.
1 parent bf26556 commit 29d8271

File tree

1 file changed

+147
-0
lines changed

1 file changed

+147
-0
lines changed

.circleci/config.yml

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
version: 2
2+
3+
references:
4+
load_composer_cache: &load_composer_cache
5+
restore_cache:
6+
keys:
7+
- composer-cache-{{ checksum "composer.json" }}
8+
- composer-cache-
9+
10+
composer_install: &composer_install
11+
run:
12+
name: Install composer packages.
13+
command: composer install --no-suggest --ignore-platform-reqs
14+
15+
save_composer_cache: &save_composer_cache
16+
save_cache:
17+
key: composer-cache-{{ checksum "composer.json" }}
18+
paths:
19+
- ./vendor
20+
21+
install_composer: &install_composer
22+
run:
23+
name: Installing composer...
24+
command: |
25+
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
26+
EXPECTED_SIGNATURE=$(curl -s https://composer.github.io/installer.sig)
27+
ACTUAL_SIGNATURE=$(php -r "echo hash_file('sha384', 'composer-setup.php');")
28+
[[ "$EXPECTED_SIGNATURE" == "$ACTUAL_SIGNATURE" ]] && php composer-setup.php --install-dir=/bin --filename=composer || exit 1
29+
composer config -g github-protocols https && composer config -g repo.packagist composer https://packagist.org
30+
rm composer-setup.php
31+
32+
job_phpunit_base: &job_phpunit_base
33+
docker:
34+
- image: wordpress:php$CONTAINER_PHP_VERSION-fpm-alpine
35+
- image: mysql:5.7
36+
environment:
37+
MYSQL_DATABASE: phpcompat_test
38+
MYSQL_USER: phpcompat_user
39+
MYSQL_PASSWORD: phpcompat_pass
40+
MYSQL_ROOT_PASSWORD: wordpress
41+
working_directory: /root/project/phpcompat
42+
steps:
43+
- run: apk add --no-cache git subversion
44+
- *install_composer
45+
- checkout
46+
- run:
47+
name: PHP Lint Error Check
48+
command: /bin/bash php-lint.sh
49+
- *load_composer_cache
50+
- *composer_install
51+
- *save_composer_cache
52+
- run:
53+
name: WordPress Test Suite Installation
54+
command: /bin/bash tests/install-wp-tests.sh phpcompat_test phpcompat_user phpcompat_pass 127.0.0.1 $CONTAINER_WP_VERSION true
55+
- run:
56+
name: Run WordPress PHPUnit Tests
57+
command: composer test
58+
59+
jobs:
60+
job_test_javascript:
61+
docker:
62+
- image: circleci/node:12
63+
steps:
64+
- checkout
65+
- run: npm install
66+
- run:
67+
name: Run NPM Tests
68+
command: npm test
69+
job_php_code_standards:
70+
docker:
71+
- image: wordpress:php7.3-fpm-alpine
72+
working_directory: /root/project/phpcompat
73+
steps:
74+
- run: apk add --no-cache git subversion
75+
- *install_composer
76+
- checkout
77+
- *load_composer_cache
78+
- *composer_install
79+
- *save_composer_cache
80+
- run:
81+
name: Run PHP Code Sniffer Check
82+
command: composer phpcs
83+
job_test_php56_min:
84+
<<: *job_phpunit_base
85+
environment:
86+
CONTAINER_WP_VERSION: "5.1"
87+
CONTAINER_PHP_VERSION: "5.6"
88+
job_test_php56:
89+
<<: *job_phpunit_base
90+
environment:
91+
CONTAINER_WP_VERSION: "latest"
92+
CONTAINER_PHP_VERSION: "5.6"
93+
job_test_php70:
94+
<<: *job_phpunit_base
95+
environment:
96+
CONTAINER_WP_VERSION: "latest"
97+
CONTAINER_PHP_VERSION: "7.0"
98+
job_test_php71:
99+
<<: *job_phpunit_base
100+
environment:
101+
CONTAINER_WP_VERSION: "latest"
102+
CONTAINER_PHP_VERSION: "7.1"
103+
job_test_php72:
104+
<<: *job_phpunit_base
105+
environment:
106+
CONTAINER_WP_VERSION: "latest"
107+
CONTAINER_PHP_VERSION: "7.2"
108+
job_test_php73_min:
109+
<<: *job_phpunit_base
110+
environment:
111+
CONTAINER_WP_VERSION: "5.2"
112+
CONTAINER_PHP_VERSION: "7.3"
113+
job_test_php73:
114+
<<: *job_phpunit_base
115+
environment:
116+
CONTAINER_WP_VERSION: "latest"
117+
CONTAINER_PHP_VERSION: "7.3"
118+
119+
workflows:
120+
version: 2
121+
build_and_test:
122+
jobs:
123+
- job_test_javascript
124+
- job_php_code_standards:
125+
requires:
126+
- job_test_javascript:
127+
- job_test_php56_min:
128+
requires:
129+
- job_php_code_standards
130+
- job_test_php56:
131+
requires:
132+
- job_php_code_standards
133+
- job_test_php70:
134+
requires:
135+
- job_php_code_standards
136+
- job_test_php71:
137+
requires:
138+
- job_php_code_standards
139+
- job_test_php72:
140+
requires:
141+
- job_php_code_standards
142+
- job_test_php73_min:
143+
requires:
144+
- job_php_code_standards
145+
- job_test_php73:
146+
requires:
147+
- job_php_code_standards

0 commit comments

Comments
 (0)