Skip to content

Instantly share code, notes, and snippets.

@TomK
Last active December 7, 2021 10:20
Show Gist options
  • Save TomK/9eaccc728ea54b0bd68d43cf43f69746 to your computer and use it in GitHub Desktop.
Save TomK/9eaccc728ea54b0bd68d43cf43f69746 to your computer and use it in GitHub Desktop.
CircleCI skeleton php config
defaults: &defaults
steps:
# common php steps
- run: echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
- run: if [ -n "$ADD_PACKAGES" ]; then apk -U add $ADD_PACKAGES; fi;
- run: if [ -n "$ADD_MODULES" ]; then docker-php-ext-install $ADD_MODULES; fi;
- run: |
if [ -n "$ADD_PECL" ]; then
docker-php-source extract \
&& apk add --no-cache --virtual .phpize-deps-configure $PHPIZE_DEPS $ADD_PHPIZE_DEPS \
&& printf "\n" | pecl install $ADD_PECL \
&& docker-php-ext-enable $(echo $ADD_PECL | sed -E 's/-[0-9]+(\.[0-9]+)*//g') \
&& apk del .phpize-deps-configure \
&& docker-php-source delete
fi;
- run: echo "date.timezone = UTC" >> $(php --ini |grep Scan |awk '{print $NF}')/timezone.ini
- run: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
# pre-checkout steps
# checkout
- checkout
# post-checkout steps
# run tests
- restore_cache:
keys:
# "composer.json" can be used if "composer.json"
# is not committed to the repository.
- composer-v1-{{ checksum "composer.lock" }}
# fallback to using the latest cache if no exact match is found
- composer-v1-
- run: composer install -n --prefer-dist
- save_cache:
key: composer-v1-{{ checksum "composer.lock" }}
paths:
- vendor
- run: php vendor/phpunit/phpunit/phpunit -c phpunit.xml --log-junit /tmp/test-results/phpunit/junit.xml
- store_test_results:
path: /tmp/test-results
version: 2
jobs:
build-php54:
<<: *defaults
docker:
- image: tomkay/docker-legacy-php:5.4-alpine
build-php55:
<<: *defaults
docker:
- image: tomkay/docker-legacy-php:5.5-alpine
build-php56:
<<: *defaults
docker:
- image: php:5.6-alpine
build-php70:
<<: *defaults
docker:
- image: php:7.0-alpine
build-php71:
<<: *defaults
docker:
- image: php:7.1-alpine
build-php72:
<<: *defaults
docker:
- image: php:7.2-alpine
build-php73:
<<: *defaults
docker:
- image: php:7.3-alpine
build-php74:
<<: *defaults
docker:
- image: php:7.4-alpine
build-php80:
<<: *defaults
docker:
- image: php:8.0-alpine
build-php81:
<<: *defaults
docker:
- image: php:8.1-alpine
workflows:
version: 2
build:
jobs:
- build-php54
- build-php55
- build-php56
- build-php70
- build-php71
- build-php72
- build-php73
- build-php74
- build-php80
- build-php81
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment