Skip to content

Commit e20f999

Browse files
committed
Add a CI workflow using GitHub Actions
1 parent a0c9eff commit e20f999

27 files changed

+297
-178
lines changed

.circleci/config.yml

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ commands:
2121
steps:
2222
- run:
2323
name: Clear test app cache
24-
command: tests/Fixtures/app/console cache:clear
24+
command: tests/Fixtures/app/console cache:clear --ansi
2525
disable-php-memory-limit:
2626
steps:
2727
- run:
@@ -37,7 +37,7 @@ commands:
3737
- run:
3838
name: Install mongodb PHP extension
3939
command: |
40-
sudo pecl install mongodb-1.5.4
40+
sudo pecl install mongodb-1.5.5
4141
sudo docker-php-ext-enable mongodb
4242
install-pcov-php-extension:
4343
steps:
@@ -153,16 +153,11 @@ commands:
153153
paths:
154154
- /tmp/phpstan/cache
155155
key: phpstan-cache-{{ .Revision }}-{{ .BuildNum }}
156-
update-composer:
157-
steps:
158-
- run:
159-
name: Update Composer
160-
command: sudo composer self-update
161156
update-project-dependencies:
162157
steps:
163158
- run:
164159
name: Update project dependencies
165-
command: composer update --prefer-dist --no-progress --no-suggest --ansi
160+
command: composer update --no-progress --no-suggest --ansi
166161
wait-for-elasticsearch:
167162
steps:
168163
- wait-for-service:
@@ -226,7 +221,6 @@ jobs:
226221
- checkout
227222
- disable-xdebug-php-extension
228223
- disable-php-memory-limit
229-
- update-composer
230224
- restore-composer-cache
231225
- run:
232226
name: Install PHP-CS-Fixer
@@ -253,7 +247,6 @@ jobs:
253247
- install-mongodb-php-extension
254248
- disable-xdebug-php-extension
255249
- disable-php-memory-limit
256-
- update-composer
257250
- restore-composer-cache
258251
- update-project-dependencies
259252
- save-composer-cache
@@ -274,7 +267,6 @@ jobs:
274267
- install-pcov-php-extension
275268
- disable-xdebug-php-extension
276269
- disable-php-memory-limit
277-
- update-composer
278270
- restore-composer-cache
279271
- update-project-dependencies
280272
- save-composer-cache
@@ -322,7 +314,6 @@ jobs:
322314
- install-pcov-php-extension
323315
- disable-xdebug-php-extension
324316
- disable-php-memory-limit
325-
- update-composer
326317
- restore-composer-cache
327318
- update-project-dependencies
328319
- save-composer-cache
@@ -333,7 +324,7 @@ jobs:
333324
mkdir -p build/logs/behat build/coverage
334325
for f in $(find features -name '*.feature' -not -path 'features/main/exposed_state.feature' -not -path 'features/elasticsearch/*' -not -path 'features/mongodb/*' | circleci tests split --split-by=timings); do
335326
_f=$(echo "$f" | tr / _)
336-
FEATURE="${_f}" vendor/bin/behat --format=progress --out=std --format=junit --out=build/logs/behat/"${_f}" --profile=default-coverage --no-interaction "$f"
327+
FEATURE="${_f}" vendor/bin/behat --format=progress --out=std --format=junit --out=build/logs/behat/"${_f}" --profile=default-coverage --no-interaction --colors "$f"
337328
done
338329
- restore-npm-cache
339330
- merge-test-reports:
@@ -368,7 +359,6 @@ jobs:
368359
- install-pcov-php-extension
369360
- disable-xdebug-php-extension
370361
- disable-php-memory-limit
371-
- update-composer
372362
- restore-composer-cache
373363
- update-project-dependencies
374364
- save-composer-cache
@@ -406,7 +396,6 @@ jobs:
406396
- install-pcov-php-extension
407397
- disable-xdebug-php-extension
408398
- disable-php-memory-limit
409-
- update-composer
410399
- restore-composer-cache
411400
- update-project-dependencies
412401
- save-composer-cache
@@ -416,7 +405,7 @@ jobs:
416405
name: Run Behat tests
417406
command: |
418407
mkdir -p build/logs/behat
419-
vendor/bin/behat --format=progress --out=std --format=junit --out=build/logs/behat --profile=mongodb-coverage --no-interaction
408+
vendor/bin/behat --format=progress --out=std --format=junit --out=build/logs/behat --profile=mongodb-coverage --no-interaction --colors
420409
- restore-npm-cache
421410
- merge-test-reports:
422411
dir: build/logs/behat
@@ -450,7 +439,6 @@ jobs:
450439
- install-pcov-php-extension
451440
- disable-xdebug-php-extension
452441
- disable-php-memory-limit
453-
- update-composer
454442
- restore-composer-cache
455443
- update-project-dependencies
456444
- save-composer-cache
@@ -460,7 +448,7 @@ jobs:
460448
name: Run Behat tests
461449
command: |
462450
mkdir -p build/logs/behat
463-
vendor/bin/behat --format=progress --out=std --format=junit --out=build/logs/behat --profile=elasticsearch-coverage --no-interaction
451+
vendor/bin/behat --format=progress --out=std --format=junit --out=build/logs/behat --profile=elasticsearch-coverage --no-interaction --colors
464452
- restore-npm-cache
465453
- merge-test-reports:
466454
dir: build/logs/behat
@@ -485,10 +473,12 @@ jobs:
485473

486474
workflows:
487475
version: 2
488-
lint-and-coverage:
476+
lint:
489477
jobs:
490478
- php-cs-fixer
491479
- phpstan
480+
coverage:
481+
jobs:
492482
- phpunit-coverage
493483
- behat-coverage
494484
- phpunit-mongodb-coverage

.editorconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ trim_trailing_whitespace = false
4747
indent_style = space
4848
indent_size = 2
4949

50+
[.github/workflows/*.yml]
51+
indent_style = space
52+
indent_size = 2
53+
5054
[.gitmodules]
5155
indent_style = tab
5256

.github/workflows/ci.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
# branches:
6+
# - master
7+
# - '[0-9]*.[0-9]*'
8+
# - '[0-9]*.x'
9+
# tags:
10+
# - 'v[0-9]*.[0-9]*'
11+
pull_request:
12+
13+
jobs:
14+
phpunit:
15+
name: PHPUnit (PHP ${{ matrix.php }})
16+
runs-on: ubuntu-latest
17+
container:
18+
image: php:${{ matrix.php }}
19+
strategy:
20+
# https://github.community/t5/GitHub-Actions/GitHub-Actions-Matrix-options-dont-work-as-documented/m-p/29558
21+
matrix:
22+
php:
23+
- '7.1'
24+
- '7.2'
25+
- '7.3'
26+
- '7.4-rc'
27+
fail-fast: false
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v1
31+
- name: Install system packages
32+
run: |
33+
apt-get update
34+
apt-get install -y --no-install-recommends \
35+
unzip
36+
- name: Install mongodb PHP extension
37+
if: matrix.php != '7.1'
38+
run: |
39+
pecl install mongodb-1.5.5
40+
docker-php-ext-enable mongodb
41+
- name: Disable PHP memory limit
42+
run: echo 'memory_limit=-1' >> /usr/local/etc/php/php.ini
43+
- name: Install Composer
44+
run: curl -sS -o - https://raw.githubusercontent.com/composer/getcomposer.org/ba13e3fc70f1c66250d1ea7ea4911d593aa1dba5/web/installer | php -- --install-dir=/usr/local/bin --filename=composer --quiet
45+
- name: Remove Doctrine MongoDB ODM
46+
if: matrix.php == '7.1'
47+
run: |
48+
composer remove --dev --no-progress --no-update --ansi \
49+
doctrine/mongodb-odm \
50+
doctrine/mongodb-odm-bundle
51+
- name: Update project dependencies
52+
run: composer update --no-progress --no-suggest --ansi
53+
- name: Clear test app cache
54+
run: tests/Fixtures/app/console cache:clear --ansi
55+
- name: Run PHPUnit tests
56+
run: vendor/bin/phpunit --colors=always
57+
58+
phpunit-lowest-deps:
59+
name: PHPUnit (PHP ${{ matrix.php }}) (lowest dependencies)
60+
runs-on: ubuntu-latest
61+
container:
62+
image: php:${{ matrix.php }}
63+
strategy:
64+
# https://github.community/t5/GitHub-Actions/GitHub-Actions-Matrix-options-dont-work-as-documented/m-p/29558
65+
matrix:
66+
php:
67+
- '7.3'
68+
- '7.4-rc'
69+
fail-fast: false
70+
steps:
71+
- name: Checkout
72+
uses: actions/checkout@v1
73+
- name: Install system packages
74+
run: |
75+
apt-get update
76+
apt-get install -y --no-install-recommends \
77+
unzip
78+
- name: Install mongodb PHP extension
79+
if: matrix.php != '7.1'
80+
run: |
81+
pecl install mongodb-1.5.5
82+
docker-php-ext-enable mongodb
83+
- name: Disable PHP memory limit
84+
run: echo 'memory_limit=-1' >> /usr/local/etc/php/php.ini
85+
- name: Install Composer
86+
run: curl -sS -o - https://raw.githubusercontent.com/composer/getcomposer.org/ba13e3fc70f1c66250d1ea7ea4911d593aa1dba5/web/installer | php -- --install-dir=/usr/local/bin --filename=composer --quiet
87+
- name: Remove Doctrine MongoDB ODM
88+
if: matrix.php == '7.1'
89+
run: |
90+
composer remove --dev --no-progress --no-update --ansi \
91+
doctrine/mongodb-odm \
92+
doctrine/mongodb-odm-bundle
93+
- name: Update project dependencies
94+
run: composer update --no-progress --no-suggest --prefer-stable --prefer-lowest --ansi
95+
- name: Clear test app cache
96+
run: tests/Fixtures/app/console cache:clear --ansi
97+
- name: Run PHPUnit tests
98+
run: vendor/bin/phpunit --colors=always

.travis.yml

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ cache:
1414
echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
1515
- &disable-xdebug-php-extension |
1616
phpenv config-rm xdebug.ini || echo "xdebug not available"
17-
- &install-mongodb-php-extension |
17+
- &enable-mongodb-php-extension |
1818
echo "extension=mongodb.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/mongodb.ini
1919
- &run-behat-tests |
20-
vendor/bin/behat --format=progress --no-interaction
20+
vendor/bin/behat --format=progress --no-interaction --colors
2121
- &run-phpunit-tests |
22-
vendor/bin/phpunit
22+
vendor/bin/phpunit --colors=always
2323
- &update-project-dependencies |
24-
composer update --prefer-dist --no-progress --no-suggest --ansi
24+
composer update --no-progress --no-suggest --ansi
2525
- &validate-openapi-v2-json |
2626
tests/Fixtures/app/console api:swagger:export > swagger.json && npx swagger-cli validate swagger.json && rm swagger.json
2727
- &validate-openapi-v2-yaml |
@@ -33,9 +33,10 @@ cache:
3333

3434
jobs:
3535
include:
36-
- php: '7.1'
36+
- name: '(PHP 7.1)'
37+
php: '7.1'
3738
before_install:
38-
- *install-mongodb-php-extension
39+
- *enable-mongodb-php-extension
3940
- *disable-xdebug-php-extension
4041
- *disable-php-memory-limit
4142
- *add-composer-bin-dir-to-path
@@ -56,9 +57,10 @@ jobs:
5657
- *validate-openapi-v3-json
5758
- *validate-openapi-v3-yaml
5859

59-
- php: '7.2'
60+
- name: '(PHP 7.2)'
61+
php: '7.2'
6062
before_install:
61-
- *install-mongodb-php-extension
63+
- *enable-mongodb-php-extension
6264
- *disable-xdebug-php-extension
6365
- *disable-php-memory-limit
6466
- *add-composer-bin-dir-to-path
@@ -75,9 +77,10 @@ jobs:
7577
- *validate-openapi-v3-json
7678
- *validate-openapi-v3-yaml
7779

78-
- php: '7.3'
80+
- name: '(PHP 7.3)'
81+
php: '7.3'
7982
before_install:
80-
- *install-mongodb-php-extension
83+
- *enable-mongodb-php-extension
8184
- *disable-xdebug-php-extension
8285
- *disable-php-memory-limit
8386
- *add-composer-bin-dir-to-path
@@ -94,15 +97,15 @@ jobs:
9497
- *validate-openapi-v3-json
9598
- *validate-openapi-v3-yaml
9699

97-
- php: '7.3'
98-
env: deps=low
100+
- name: '(PHP 7.3) (lowest dependencies)'
101+
php: '7.3'
99102
before_install:
100-
- *install-mongodb-php-extension
103+
- *enable-mongodb-php-extension
101104
- *disable-xdebug-php-extension
102105
- *disable-php-memory-limit
103106
- *add-composer-bin-dir-to-path
104107
install:
105-
- composer update --prefer-dist --no-progress --no-suggest --prefer-stable --prefer-lowest --ansi
108+
- composer update --no-progress --no-suggest --prefer-stable --prefer-lowest --ansi
106109
before_script:
107110
- *clear-test-app-cache
108111
script:
@@ -119,7 +122,7 @@ jobs:
119122
services:
120123
- postgresql
121124
before_install:
122-
- *install-mongodb-php-extension
125+
- *enable-mongodb-php-extension
123126
- *disable-xdebug-php-extension
124127
- *disable-php-memory-limit
125128
- *add-composer-bin-dir-to-path
@@ -142,7 +145,7 @@ jobs:
142145
services:
143146
- mysql
144147
before_install:
145-
- *install-mongodb-php-extension
148+
- *enable-mongodb-php-extension
146149
- *disable-xdebug-php-extension
147150
- *disable-php-memory-limit
148151
- *add-composer-bin-dir-to-path
@@ -165,7 +168,7 @@ jobs:
165168
services:
166169
- mongodb
167170
before_install:
168-
- *install-mongodb-php-extension
171+
- *enable-mongodb-php-extension
169172
- *disable-xdebug-php-extension
170173
- *disable-php-memory-limit
171174
- *add-composer-bin-dir-to-path
@@ -191,7 +194,7 @@ jobs:
191194
- sudo apt-get update
192195
- sudo apt-get install elasticsearch
193196
- sudo service elasticsearch start
194-
- *install-mongodb-php-extension
197+
- *enable-mongodb-php-extension
195198
- *disable-xdebug-php-extension
196199
- *disable-php-memory-limit
197200
- *add-composer-bin-dir-to-path
@@ -211,7 +214,7 @@ jobs:
211214
- php: '7.3'
212215
env: SYMFONY_DEPRECATIONS_HELPER=max[total]=5 # 5 deprecation notices from FOSUserBundle
213216
before_install:
214-
- *install-mongodb-php-extension
217+
- *enable-mongodb-php-extension
215218
- *disable-xdebug-php-extension
216219
- *disable-php-memory-limit
217220
- *add-composer-bin-dir-to-path

0 commit comments

Comments
 (0)