@@ -73,7 +73,7 @@ aliases:
7373 DEPLOY_SSH_FINGERPRINT4 : *deploy_ssh_fingerprint4
7474 GIT_MIRROR_SSH_FINGERPRINT : *git_mirror_ssh_fingerprint
7575 docker :
76- - image : drevops/ci-runner:24.3 .0
76+ - image : drevops/ci-runner:24.4 .0
7777 auth :
7878 username : $DOCKER_USER
7979 password : $DOCKER_PASS
@@ -102,7 +102,7 @@ aliases:
102102 - &step_setup_remote_docker
103103 setup_remote_docker :
104104 docker_layer_caching : *docker_layer_caching
105- version : 20.10.18
105+ version : default
106106
107107 # Set up Docker network.
108108 - &step_setup_docker_network
@@ -127,20 +127,89 @@ aliases:
127127# Reusable job configuration.
128128job-build-isolated : &job-build-isolated
129129 steps :
130- # Workspace now contains previously built application code artifact.
131- - attach_workspace :
132- at : /tmp/workspace
133130 - checkout
134- - run : cd web/themes/contrib/civictheme && ./.devtools/build.sh
135- - run : cd web/themes/contrib/civictheme && ./.devtools/lint.sh
136- - run : cd web/themes/contrib/civictheme && ./.devtools/test.sh
131+
137132 - run :
138- command : cd web/themes/contrib/civictheme && ./.devtools/process-artifacts.sh
139- when : always
133+ name : Upgrade sqlite3
134+ command : |
135+ wget https://www.sqlite.org/2024/sqlite-autoconf-3450300.tar.gz -O /tmp/sqlite.tar.gz
136+ tar -xzf /tmp/sqlite.tar.gz -C /tmp
137+ cd /tmp/sqlite-autoconf-3450300
138+ ./configure CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA=1" --prefix=/usr/local
139+ make && sudo make install
140+ sudo ldconfig
141+ echo "export LD_LIBRARY_PATH=/usr/local/lib" >> $BASH_ENV
142+
143+ - run :
144+ name : Install PCOV
145+ command : |
146+ sudo pecl install pcov
147+ echo "extension=pcov.so" | sudo tee -a /usr/local/etc/php/conf.d/pcov.ini
148+ echo "pcov.enabled=1" | sudo tee -a /usr/local/etc/php/conf.d/pcov.ini
149+
150+ - run :
151+ name : Assemble the codebase
152+ command : .devtools/assemble.sh
153+ working_directory : web/themes/contrib/civictheme
154+
155+ - run :
156+ name : Start built-in PHP server
157+ command : .devtools/start.sh
158+ working_directory : web/themes/contrib/civictheme
159+
160+ - run :
161+ name : Provision site
162+ command : .devtools/provision.sh
163+ working_directory : web/themes/contrib/civictheme
164+
165+ - run :
166+ name : Lint code with PHPCS
167+ command : vendor/bin/phpcs || [ "${CI_PHPCS_IGNORE_FAILURE:-0}" -eq 1 ]
168+ working_directory : web/themes/contrib/civictheme/build
169+
170+ - run :
171+ name : Lint code with PHPStan
172+ command : vendor/bin/phpstan || [ "${CI_PHPSTAN_IGNORE_FAILURE:-0}" -eq 1 ]
173+ working_directory : web/themes/contrib/civictheme/build
174+
175+ - run :
176+ name : Lint code with Rector
177+ command : vendor/bin/rector --clear-cache --dry-run || [ "${CI_RECTOR_IGNORE_FAILURE:-0}" -eq 1 ]
178+ working_directory : web/themes/contrib/civictheme/build
179+
180+ - run :
181+ name : Lint code with PHPMD
182+ command : vendor/bin/phpmd . text phpmd.xml || [ "${CI_PHPMD_IGNORE_FAILURE:-0}" -eq 1 ]
183+ working_directory : web/themes/contrib/civictheme/build
184+
185+ - run :
186+ name : Lint code with Twig CS Fixer
187+ command : vendor/bin/twig-cs-fixer || [ "${CI_TWIGCSFIXER_IGNORE_FAILURE:-0}" -eq 1 ]
188+ working_directory : web/themes/contrib/civictheme/build
189+
190+ - run :
191+ name : Run tests
192+ command : vendor/bin/phpunit || [ "${CI_TEST_IGNORE_FAILURE:-0}" -eq 1 ]
193+ working_directory : web/themes/contrib/civictheme/build
194+ environment :
195+ BROWSERTEST_OUTPUT_DIRECTORY : /tmp
196+
140197 - store_test_results :
141- path : /tmp/test_results
198+ path : web/themes/contrib/civictheme/.logs/test_results
199+
142200 - store_artifacts :
143- path : /tmp/artifacts
201+ path : web/themes/contrib/civictheme/build/web/sites/simpletest/browser_output
202+
203+ - store_artifacts :
204+ path : web/themes/contrib/civictheme/.logs/coverage
205+
206+ - run :
207+ name : Upload code coverage reports to Codecov
208+ command : |
209+ if [ -z "${CIRCLE_TAG-}" ] && [ -n "${CODECOV_TOKEN-}" ] && [ -d .logs/coverage/phpunit ]; then
210+ curl -Os https://cli.codecov.io/latest/linux/codecov && sudo chmod +x codecov
211+ ./codecov --verbose upload-process --fail-on-error -n "circleci-$CIRCLE_JOB" -s web/themes/contrib/civictheme/.logs/coverage
212+ fi
144213
145214job-build : &job-build
146215 parallelism : 2
@@ -221,34 +290,49 @@ jobs:
221290
222291 # Isolated theme build within a vanilla Drupal installation.
223292 # This replicates (to a degree) what Drupal CI would do.
224- build-isolated-php-81 :
293+ build-isolated-php-82 :
225294 << : *runner_config
226295 docker :
227- - image : cimg/php:8.1-browsers
296+ - image : cimg/php:8.2-browsers
297+ environment :
298+ DRUPAL_VERSION : 10.1
299+ DRUPAL_PROJECT_SHA : 10.x
228300 << : *job-build-isolated
229301
230- build-isolated-php-82 :
302+ build-isolated-php-82-legacy :
231303 << : *runner_config
232304 docker :
233305 - image : cimg/php:8.2-browsers
306+ environment :
307+ DRUPAL_VERSION : 10.1
308+ DRUPAL_PROJECT_SHA : 10.x
234309 << : *job-build-isolated
235310
236- build-isolated-php-81-legacy :
311+ build-isolated-php-82-next :
237312 << : *runner_config
238313 docker :
239- - image : cimg/php:8.1 -browsers
314+ - image : cimg/php:8.2 -browsers
240315 environment :
241- DRUPAL_VERSION : 10.1
242- DRUPAL_PROJECT_SHA : a1bb2c4dd1e54ce6b9170dc666e6d543474dd57b
316+ DRUPAL_VERSION : 10@beta
317+ DRUPAL_PROJECT_SHA : 10.x
243318 << : *job-build-isolated
244319
245- build-isolated-php-82-legacy :
320+ build-isolated-php-83 :
246321 << : *runner_config
247322 docker :
248- - image : cimg/php:8.2 -browsers
323+ - image : cimg/php:8.3 -browsers
249324 environment :
250- DRUPAL_VERSION : 10.1
251- DRUPAL_PROJECT_SHA : a1bb2c4dd1e54ce6b9170dc666e6d543474dd57b
325+ DRUPAL_VERSION : stable
326+ DRUPAL_PROJECT_SHA : 10.x
327+ << : *job-build-isolated
328+
329+ build-isolated-php-83-next :
330+ << : *runner_config
331+ docker :
332+ - image : cimg/php:8.3-browsers
333+ environment :
334+ DRUPAL_VERSION : 10@beta
335+ DRUPAL_PROJECT_SHA : 10.x
252336 << : *job-build-isolated
253337
254338 # Used to pass the built code down the pipeline.
@@ -435,80 +519,91 @@ workflows:
435519 # Commit workflow. Runs for every commit push to the remote repository.
436520 commit :
437521 jobs :
438- - build-isolated-php-81 :
522+ - build-isolated-php-82 :
439523 filters :
440524 branches :
441525 ignore : /^content\/.*/
442526 tags :
443527 only : /.*/
444- - build-isolated-php-82 :
528+ - build-isolated-php-82-legacy :
445529 filters :
446530 branches :
447531 ignore : /^content\/.*/
448532 tags :
449533 only : /.*/
450- - build-isolated-php-81-legacy :
534+ - build-isolated-php-82-next :
451535 filters :
452536 branches :
453537 ignore : /^content\/.*/
454538 tags :
455539 only : /.*/
456- - build-isolated-php-82-legacy :
540+ - build-isolated-php-83 :
541+ filters :
542+ branches :
543+ ignore : /^content\/.*/
544+ tags :
545+ only : /.*/
546+ - build-isolated-php-83-next :
457547 filters :
458548 branches :
459549 ignore : /^content\/.*/
460550 tags :
461551 only : /.*/
462552 - build-minimal :
463553 requires :
464- - build-isolated-php-81
465- - build-isolated-php-81-legacy
466554 - build-isolated-php-82
467555 - build-isolated-php-82-legacy
556+ - build-isolated-php-82-next
557+ - build-isolated-php-83
558+ - build-isolated-php-83-next
468559 filters :
469560 branches :
470561 ignore : /^content\/.*/
471562 tags :
472563 only : /.*/
473564 - build-minimal-subtheme :
474565 requires :
475- - build-isolated-php-81
476- - build-isolated-php-81-legacy
477566 - build-isolated-php-82
478567 - build-isolated-php-82-legacy
568+ - build-isolated-php-82-next
569+ - build-isolated-php-83
570+ - build-isolated-php-83-next
479571 filters :
480572 branches :
481573 ignore : /^content\/.*/
482574 tags :
483575 only : /.*/
484576 - build-govcms :
485577 requires :
486- - build-isolated-php-81
487- - build-isolated-php-81-legacy
488578 - build-isolated-php-82
489579 - build-isolated-php-82-legacy
580+ - build-isolated-php-82-next
581+ - build-isolated-php-83
582+ - build-isolated-php-83-next
490583 filters :
491584 branches :
492585 ignore : /^content\/.*/
493586 tags :
494587 only : /.*/
495588 - build-govcms-subtheme :
496589 requires :
497- - build-isolated-php-81
498- - build-isolated-php-81-legacy
499590 - build-isolated-php-82
500591 - build-isolated-php-82-legacy
592+ - build-isolated-php-82-next
593+ - build-isolated-php-83
594+ - build-isolated-php-83-next
501595 filters :
502596 branches :
503597 ignore : /^content\/.*/
504598 tags :
505599 only : /.*/
506600 - build-govcms-subtheme-sibling :
507601 requires :
508- - build-isolated-php-81
509- - build-isolated-php-81-legacy
510602 - build-isolated-php-82
511603 - build-isolated-php-82-legacy
604+ - build-isolated-php-82-next
605+ - build-isolated-php-83
606+ - build-isolated-php-83-next
512607 filters :
513608 branches :
514609 ignore : /^content\/.*/
0 commit comments