Skip to content

Commit ce7fffb

Browse files
alanpoulainbendaviesteohhanhuinullchalasr
authored
Merge 2.5 (#3272)
Merge 2.5 Co-authored-by: Ben Davies <[email protected]> Co-authored-by: Teoh Han Hui <[email protected]> Co-authored-by: null <[email protected]> Co-authored-by: Robin Chalas <[email protected]> Co-authored-by: Antoine Bluchet <[email protected]> Co-authored-by: Kévin Dunglas <[email protected]> Co-authored-by: Nicolas Grekas <[email protected]> Co-authored-by: Flug <[email protected]>
2 parents a12ac48 + 0b796a7 commit ce7fffb

File tree

23 files changed

+843
-130
lines changed

23 files changed

+843
-130
lines changed

.circleci/config.yml

Lines changed: 127 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
version: 2.1
22

3+
.constants:
4+
- &ext-mongodb-version '1.6.0'
5+
36
commands:
47
clear-test-app-cache:
58
steps:
@@ -17,12 +20,35 @@ commands:
1720
name: Disable xdebug PHP extension
1821
command: sudo rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
1922
install-mongodb-php-extension:
23+
steps:
24+
- install-php-extension-from-pecl:
25+
extension_name: mongodb
26+
extension_version: *ext-mongodb-version
27+
install-php-extension-from-pecl:
28+
parameters:
29+
extension_name:
30+
description: Name of the PHP extension.
31+
type: string
32+
extension_version:
33+
description: Version of the PHP extension.
34+
type: string
2035
steps:
2136
- run:
22-
name: Install mongodb PHP extension
37+
name: Install << parameters.extension_name >> PHP extension
38+
environment:
39+
BUILD_DIR: /var/tmp/build/ext-<< parameters.extension_name >>-<< parameters.extension_version >>
40+
SRC_DIR: /usr/src/php/ext/<< parameters.extension_name >>
2341
command: |
24-
sudo pecl install mongodb-1.5.5
25-
sudo docker-php-ext-enable mongodb
42+
sudo mkdir -p "$SRC_DIR" "$BUILD_DIR"
43+
sudo chown -R "$(id -u):$(id -g)" "$SRC_DIR" "$BUILD_DIR"
44+
cd "$SRC_DIR"
45+
curl -fsSL "https://pecl.php.net/get/<< parameters.extension_name >>-<< parameters.extension_version >>.tgz" | tar -zx --strip-components 1
46+
phpize
47+
cd "$BUILD_DIR"
48+
"$SRC_DIR"/configure --config-cache
49+
make -j"$(nproc)"
50+
sudo make -j"$(nproc)" install
51+
sudo docker-php-ext-enable << parameters.extension_name >>
2652
install-symfony-flex:
2753
steps:
2854
- run:
@@ -35,61 +61,114 @@ commands:
3561
- restore_cache:
3662
name: Restore Composer cache
3763
keys:
38-
- composer-cache-{{ .Revision }}
39-
- composer-cache-{{ .Branch }}
40-
- composer-cache
64+
- composer-{{ .Revision }}
65+
- composer-{{ .Branch }}
66+
- composer-
67+
restore-mongodb-php-extension-build-cache:
68+
parameters:
69+
php_version:
70+
description: PHP version (major.minor).
71+
type: string
72+
steps:
73+
- restore-php-extension-build-cache:
74+
extension_name: mongodb
75+
extension_version: *ext-mongodb-version
76+
php_version: << parameters.php_version >>
4177
restore-php-cs-fixer-cache:
4278
steps:
4379
- restore_cache:
4480
name: Restore PHP-CS-Fixer cache
4581
keys:
46-
- php-cs-fixer-cache-{{ .Revision }}
47-
- php-cs-fixer-cache-{{ .Branch }}
48-
- php-cs-fixer-cache
82+
- php-cs-fixer-{{ .Revision }}
83+
- php-cs-fixer-{{ .Branch }}
84+
- php-cs-fixer-
85+
restore-php-extension-build-cache:
86+
parameters:
87+
extension_name:
88+
description: Name of the PHP extension.
89+
type: string
90+
extension_version:
91+
description: Version of the PHP extension.
92+
type: string
93+
php_version:
94+
description: PHP version (major.minor).
95+
type: string
96+
steps:
97+
- restore_cache:
98+
name: Restore << parameters.extension_name >> PHP extension build cache
99+
keys:
100+
- ext-<< parameters.extension_name >>-<< parameters.extension_version >>-php<< parameters.php_version >>-
49101
restore-phpstan-cache:
50102
steps:
51103
- restore_cache:
52104
name: Restore PHPStan cache
53105
keys:
54-
- phpstan-cache-{{ .Revision }}
55-
- phpstan-cache-{{ .Branch }}
56-
- phpstan-cache
106+
- phpstan-{{ .Revision }}
107+
- phpstan-{{ .Branch }}
108+
- phpstan-
57109
save-composer-cache:
58110
steps:
59111
- save_cache:
60112
name: Save Composer cache
61113
paths:
62-
- ~/.composer/cache/files
63-
key: composer-cache-{{ .Branch }}-{{ .BuildNum }}
114+
- ~/.composer/cache
115+
key: composer-{{ .Branch }}-{{ .BuildNum }}
64116
- save_cache:
65117
name: Save Composer cache
66118
paths:
67-
- ~/.composer/cache/files
68-
key: composer-cache-{{ .Revision }}-{{ .BuildNum }}
119+
- ~/.composer/cache
120+
key: composer-{{ .Revision }}-{{ .BuildNum }}
121+
save-mongodb-php-extension-build-cache:
122+
parameters:
123+
php_version:
124+
description: PHP version (major.minor).
125+
type: string
126+
steps:
127+
- save-php-extension-build-cache:
128+
extension_name: mongodb
129+
extension_version: *ext-mongodb-version
130+
php_version: << parameters.php_version >>
69131
save-php-cs-fixer-cache:
70132
steps:
71133
- save_cache:
72134
name: Save PHP-CS-Fixer cache
73135
paths:
74136
- .php_cs.cache
75-
key: php-cs-fixer-cache-{{ .Branch }}-{{ .BuildNum }}
137+
key: php-cs-fixer-{{ .Branch }}-{{ .BuildNum }}
76138
- save_cache:
77139
name: Save PHP-CS-Fixer cache
78140
paths:
79141
- .php_cs.cache
80-
key: php-cs-fixer-cache-{{ .Revision }}-{{ .BuildNum }}
142+
key: php-cs-fixer-{{ .Revision }}-{{ .BuildNum }}
143+
save-php-extension-build-cache:
144+
parameters:
145+
extension_name:
146+
description: Name of the PHP extension.
147+
type: string
148+
extension_version:
149+
description: Version of the PHP extension.
150+
type: string
151+
php_version:
152+
description: PHP version (major.minor).
153+
type: string
154+
steps:
155+
- save_cache:
156+
name: Save << parameters.extension_name >> PHP extension build cache
157+
paths:
158+
- /var/tmp/build/ext-<< parameters.extension_name >>-<< parameters.extension_version >>
159+
key: ext-<< parameters.extension_name >>-<< parameters.extension_version >>-php<< parameters.php_version >>-{{ .BuildNum }}
81160
save-phpstan-cache:
82161
steps:
83162
- save_cache:
84163
name: Save PHPStan cache
85164
paths:
86165
- /tmp/phpstan/cache
87-
key: phpstan-cache-{{ .Branch }}-{{ .BuildNum }}
166+
key: phpstan-{{ .Branch }}-{{ .BuildNum }}
88167
- save_cache:
89168
name: Save PHPStan cache
90169
paths:
91170
- /tmp/phpstan/cache
92-
key: phpstan-cache-{{ .Revision }}-{{ .BuildNum }}
171+
key: phpstan-{{ .Revision }}-{{ .BuildNum }}
93172
update-project-dependencies:
94173
steps:
95174
- run:
@@ -98,15 +177,25 @@ commands:
98177

99178
executors:
100179
php:
180+
parameters:
181+
php_version:
182+
description: PHP version (major.minor).
183+
type: string
101184
docker:
102-
- image: circleci/php:7.3-node
185+
- image: circleci/php:<< parameters.php_version >>-node
103186
environment:
104-
SYMFONY_REQUIRE: ^3.4 || ^4.0
187+
SYMFONY_REQUIRE: ^3.4 || ^4.0 || ^5.0
105188

106189
jobs:
107190
php-cs-fixer:
108191
description: PHP-CS-Fixer
109-
executor: php
192+
parameters:
193+
php_version:
194+
description: PHP version (major.minor).
195+
type: string
196+
executor:
197+
name: php
198+
php_version: << parameters.php_version >>
110199
environment:
111200
PHP_CS_FIXER_FUTURE_MODE: '1'
112201
working_directory: ~/api-platform/core
@@ -132,13 +221,23 @@ jobs:
132221

133222
phpstan:
134223
description: PHPStan
135-
executor: php
224+
parameters:
225+
php_version:
226+
description: PHP version (major.minor).
227+
type: string
228+
executor:
229+
name: php
230+
php_version: << parameters.php_version >>
136231
environment:
137232
APP_DEBUG: '1' # https://github.com/phpstan/phpstan-symfony/issues/37
138233
working_directory: ~/api-platform/core
139234
steps:
140235
- checkout
236+
- restore-mongodb-php-extension-build-cache:
237+
php_version: << parameters.php_version >>
141238
- install-mongodb-php-extension
239+
- save-mongodb-php-extension-build-cache:
240+
php_version: << parameters.php_version >>
142241
- disable-xdebug-php-extension
143242
- disable-php-memory-limit
144243
- restore-composer-cache
@@ -156,5 +255,7 @@ workflows:
156255
version: 2
157256
lint:
158257
jobs:
159-
- php-cs-fixer
160-
- phpstan
258+
- php-cs-fixer:
259+
php_version: '7.3'
260+
- phpstan:
261+
php_version: '7.3'

0 commit comments

Comments
 (0)