11version : 2.1
22
3+ .constants :
4+ - &ext-mongodb-version '1.6.0'
5+
36commands :
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
99178executors :
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
106189jobs :
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