.circleci/config.yml
# To update the build configuration, edit the "builds" array below and run:
#
# erb .circleci/config.yml.erb > .circleci/config.yml
#
version: 2
shared_build_steps: &shared_build_steps
- checkout
- attach_workspace:
at: /tmp/workspace
- run:
name: Downloading CodeClimate Test Reporter
command: |
curl -sL https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
chmod +x ./cc-test-reporter
- run:
name: Storing PHP Version
command: |
echo "$PHP_VERSION/$PHPUNIT_VERSION" > PHP_VERSION
cat PHP_VERSION
# Download and cache dependencies
- restore_cache:
keys:
- dependencies-{{ .Environment.CACHE_VERSION }}-{{ checksum "PHP_VERSION" }}
- run:
name: Installing Dependencies
command: |
sudo -E install-php-extensions xdebug-$XDEBUG_VERSION
sudo docker-php-ext-enable xdebug
composer require --dev --no-update phpunit/phpunit "~$PHPUNIT_VERSION"
composer require --dev --no-update doctrine/instantiator "$DOCTRINE_VERSION"
composer install --no-interaction --ignore-platform-reqs
- save_cache:
paths:
- vendor
- composer.json
key: dependencies-{{ .Environment.CACHE_VERSION }}-{{ checksum "PHP_VERSION" }}
# run tests!
- run:
name: Running Tests
command: |
vendor/bin/phpunit --version
vendor/bin/phpunit --coverage-clover clover.xml --configuration tests/phpunit${PHPUNIT_VERSION}.xml tests
environment:
XDEBUG_MODE: coverage
- run:
name: Formatting Coverage
command: |
./cc-test-reporter format-coverage --input-type clover --output coverage/codeclimate.coverage.json
- persist_to_workspace:
root: ~/codecolorer
paths:
- "*/coverage/codeclimate.coverage.json"
- "*/cc-test-reporter"
jobs:
build-php74:
docker:
- image: cimg/php:7.4
environment:
PHP_VERSION: 7.4
PHPUNIT_VERSION: 9
DOCTRINE_VERSION: ^1.5.0
XDEBUG_VERSION: 3.1.5
working_directory: ~/codecolorer/php74
steps: *shared_build_steps
build-php80:
docker:
- image: cimg/php:8.0
environment:
PHP_VERSION: 8.0
PHPUNIT_VERSION: 9
DOCTRINE_VERSION: ^1.5.0
XDEBUG_VERSION: 3.2.1
working_directory: ~/codecolorer/php80
steps: *shared_build_steps
build-php81:
docker:
- image: cimg/php:8.1
environment:
PHP_VERSION: 8.1
PHPUNIT_VERSION: 10
DOCTRINE_VERSION: ^2.0
XDEBUG_VERSION: 3.2.1
working_directory: ~/codecolorer/php81
steps: *shared_build_steps
build-php82:
docker:
- image: cimg/php:8.2
environment:
PHP_VERSION: 8.2
PHPUNIT_VERSION: 10
DOCTRINE_VERSION: ^2.0
XDEBUG_VERSION: 3.2.1
working_directory: ~/codecolorer/php82
steps: *shared_build_steps
upload-coverage:
docker:
- image: cimg/base:2023.04
environment:
CC_TEST_REPORTER_ID: c905307dfede8f3280ee4209d836ef7035981e83a62a7d256b249c9e7ea35484
steps:
- attach_workspace:
at: /tmp/workspace
- run:
name: Uploading Code Coverage
command: |
cd /tmp/workspace/php74
./cc-test-reporter upload-coverage --input coverage/codeclimate.coverage.json || true
workflows:
version: 2
test:
jobs:
- build-php74
- build-php80
- build-php81
- build-php82
- upload-coverage:
requires:
- build-php74