1
1
version : 2.1
2
2
3
+ .constants :
4
+ - &ext-mongodb-version '1.6.0'
5
+
3
6
commands :
4
7
clear-test-app-cache :
5
8
steps :
@@ -17,12 +20,35 @@ commands:
17
20
name : Disable xdebug PHP extension
18
21
command : sudo rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
19
22
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
20
35
steps :
21
36
- 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 >>
23
41
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 >>
26
52
install-symfony-flex :
27
53
steps :
28
54
- run :
@@ -35,61 +61,114 @@ commands:
35
61
- restore_cache :
36
62
name : Restore Composer cache
37
63
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 >>
41
77
restore-php-cs-fixer-cache :
42
78
steps :
43
79
- restore_cache :
44
80
name : Restore PHP-CS-Fixer cache
45
81
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 >>-
49
101
restore-phpstan-cache :
50
102
steps :
51
103
- restore_cache :
52
104
name : Restore PHPStan cache
53
105
keys :
54
- - phpstan-cache- {{ .Revision }}
55
- - phpstan-cache- {{ .Branch }}
56
- - phpstan-cache
106
+ - phpstan-{{ .Revision }}
107
+ - phpstan-{{ .Branch }}
108
+ - phpstan-
57
109
save-composer-cache :
58
110
steps :
59
111
- save_cache :
60
112
name : Save Composer cache
61
113
paths :
62
- - ~/.composer/cache/files
63
- key : composer-cache- {{ .Branch }}-{{ .BuildNum }}
114
+ - ~/.composer/cache
115
+ key : composer-{{ .Branch }}-{{ .BuildNum }}
64
116
- save_cache :
65
117
name : Save Composer cache
66
118
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 >>
69
131
save-php-cs-fixer-cache :
70
132
steps :
71
133
- save_cache :
72
134
name : Save PHP-CS-Fixer cache
73
135
paths :
74
136
- .php_cs.cache
75
- key : php-cs-fixer-cache- {{ .Branch }}-{{ .BuildNum }}
137
+ key : php-cs-fixer-{{ .Branch }}-{{ .BuildNum }}
76
138
- save_cache :
77
139
name : Save PHP-CS-Fixer cache
78
140
paths :
79
141
- .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 }}
81
160
save-phpstan-cache :
82
161
steps :
83
162
- save_cache :
84
163
name : Save PHPStan cache
85
164
paths :
86
165
- /tmp/phpstan/cache
87
- key : phpstan-cache- {{ .Branch }}-{{ .BuildNum }}
166
+ key : phpstan-{{ .Branch }}-{{ .BuildNum }}
88
167
- save_cache :
89
168
name : Save PHPStan cache
90
169
paths :
91
170
- /tmp/phpstan/cache
92
- key : phpstan-cache- {{ .Revision }}-{{ .BuildNum }}
171
+ key : phpstan-{{ .Revision }}-{{ .BuildNum }}
93
172
update-project-dependencies :
94
173
steps :
95
174
- run :
@@ -98,15 +177,25 @@ commands:
98
177
99
178
executors :
100
179
php :
180
+ parameters :
181
+ php_version :
182
+ description : PHP version (major.minor).
183
+ type : string
101
184
docker :
102
- - image : circleci/php:7.3 -node
185
+ - image : circleci/php:<< parameters.php_version >> -node
103
186
environment :
104
- SYMFONY_REQUIRE : ^3.4 || ^4.0
187
+ SYMFONY_REQUIRE : ^3.4 || ^4.0 || ^5.0
105
188
106
189
jobs :
107
190
php-cs-fixer :
108
191
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 >>
110
199
environment :
111
200
PHP_CS_FIXER_FUTURE_MODE : ' 1'
112
201
working_directory : ~/api-platform/core
@@ -132,13 +221,23 @@ jobs:
132
221
133
222
phpstan :
134
223
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 >>
136
231
environment :
137
232
APP_DEBUG : ' 1' # https://github.com/phpstan/phpstan-symfony/issues/37
138
233
working_directory : ~/api-platform/core
139
234
steps :
140
235
- checkout
236
+ - restore-mongodb-php-extension-build-cache :
237
+ php_version : << parameters.php_version >>
141
238
- install-mongodb-php-extension
239
+ - save-mongodb-php-extension-build-cache :
240
+ php_version : << parameters.php_version >>
142
241
- disable-xdebug-php-extension
143
242
- disable-php-memory-limit
144
243
- restore-composer-cache
@@ -156,5 +255,7 @@ workflows:
156
255
version : 2
157
256
lint :
158
257
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