Skip to content

Commit

Permalink
Backport CI updates from v5
Browse files Browse the repository at this point in the history
  • Loading branch information
dvdoug committed Jan 26, 2024
1 parent c93e6d4 commit 32bfc79
Showing 1 changed file with 100 additions and 97 deletions.
197 changes: 100 additions & 97 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ jobs:
fail-fast: false
matrix:
php-version:
- "8.3"
- "8.2"
- "8.1"
- "8.0"
- "7.4"
Expand All @@ -36,100 +38,101 @@ jobs:
- "php-coord/datapack-southamerica"

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 2

- name: "Setup PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: ${{ matrix.php-version }}
ini-values: "zend.assertions=1, assert.exception=1, error_reporting=E_ALL, display_errors=On"
coverage: "xdebug"
tools: cs2pr
env:
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Verify PHP version used
run: |
php -v && php -m;
- name: Setup problem matchers for PHP
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"

- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"

- name: Validate composer.json
run: composer validate --strict

- name: Set COMPOSER_ROOT_VERSION to allow branches to not fail build
run: echo "COMPOSER_ROOT_VERSION=4.x-dev" >> $GITHUB_ENV

- name: Get composer cache directory
id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Set up build cache
uses: "actions/cache@v2"
with:
path: |
${{ steps.composercache.outputs.dir }}
"build/php-code-coverage-cache"
".php-cs-fixer.cache"
key: php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-datapack-${{ matrix.datapack }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-datapack-${{ matrix.datapack }}-${{ github.ref }}
php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-datapack-${{ matrix.datapack }}
- name: Remove datapacks
run: composer remove --dev --no-update "php-coord/datapack*";

- name: Add back selected datapack
if: matrix.datapack != ''
run: composer require --dev --no-update "${{ matrix.datapack }}:^1.0";

- name: Remove PHP-CS-Fixer if not called
if: matrix.php-version != '8.0' || matrix.dependencies != 'highest'
run: composer remove --dev --no-update "friendsofphp/php-cs-fixer";

- name: Install dependencies (low)
if: matrix.dependencies == 'lowest'
run: |
composer update --prefer-lowest --no-interaction --prefer-dist --classmap-authoritative;
composer show;
- name: Install dependencies (high)
if: matrix.dependencies == 'highest'
run: |
composer update --no-interaction --prefer-dist --classmap-authoritative;
composer show;
- name: Install dependencies (latest)
if: matrix.dependencies == 'latest'
run: |
composer config minimum-stability dev;
composer update --no-interaction --prefer-dist --classmap-authoritative;
composer show
- name: Install dependencies (force latest)
if: matrix.dependencies == 'force_latest'
run: |
composer config minimum-stability dev;
composer update --no-interaction --prefer-dist --classmap-authoritative --ignore-platform-reqs;
composer show
- name: PHPUnit (Unit)
run: |
php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --coverage-clover=build/coverage-phpunit/clover.xml --exclude-group=integration;
if [ "${{ matrix.php-version }}" = "8.0" ] && [ "${{ matrix.dependencies }}" = "highest" ]; then
composer global require scrutinizer/ocular;
~/.composer/vendor/bin/ocular code-coverage:upload --format=php-clover build/coverage-phpunit/clover.xml;
fi;
- name: PHPUnit (Integration)
run: php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --group=integration --no-coverage;

- name: Check code style
if: matrix.php-version == '8.0' && matrix.dependencies == 'highest' && matrix.datapack == ''
run: vendor/bin/php-cs-fixer fix --verbose --dry-run --diff --allow-risky=yes --format=checkstyle | cs2pr
- uses: actions/checkout@v4
with:
fetch-depth: 2

- name: "Setup PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: ${{ matrix.php-version }}
ini-values: "zend.assertions=1, assert.exception=1, error_reporting=E_ALL, display_errors=On"
coverage: "xdebug"
env:
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Verify PHP version used
run: |
php -v && php -m;
- name: Setup problem matchers for PHP
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"

- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"

- name: Validate composer.json
run: composer validate --strict

- name: Set COMPOSER_ROOT_VERSION to allow branches to not fail build
run: echo "COMPOSER_ROOT_VERSION=4.x-dev" >> $GITHUB_ENV

- name: Get composer cache directory
id: composercache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

- name: Set up build cache
uses: "actions/cache@v4"
with:
path: |
${{ steps.composercache.outputs.dir }}
"build/php-code-coverage-cache"
".php-cs-fixer.cache"
key: php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-datapack-${{ matrix.datapack }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-datapack-${{ matrix.datapack }}-${{ github.ref }}
php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-datapack-${{ matrix.datapack }}
- name: Remove datapacks
run: composer remove --dev --no-update "php-coord/datapack*";

- name: Add back selected datapack
if: matrix.datapack != ''
run: composer require --dev --no-update "${{ matrix.datapack }}:^1.0";

- name: Remove PHP-CS-Fixer if not called
if: matrix.php-version != '8.0' || matrix.dependencies != 'highest'
run: composer remove --dev --no-update "friendsofphp/php-cs-fixer";

- name: Install dependencies (low)
if: matrix.dependencies == 'lowest'
run: |
composer update --prefer-lowest --no-interaction --prefer-dist --classmap-authoritative;
composer show;
- name: Install dependencies (high)
if: matrix.dependencies == 'highest'
run: |
composer update --no-interaction --prefer-dist --classmap-authoritative;
composer show;
- name: Install dependencies (latest)
if: matrix.dependencies == 'latest'
run: |
composer config minimum-stability dev;
composer update --no-interaction --prefer-dist --classmap-authoritative;
composer show;
- name: Install dependencies (force latest)
if: matrix.dependencies == 'force_latest'
run: |
composer config minimum-stability dev;
composer update --no-interaction --prefer-dist --classmap-authoritative --ignore-platform-reqs;
composer show;
- name: PHPUnit (Unit)
run: |
if [ "${{ matrix.php-version }}" = "8.0" ] && [ "${{ matrix.dependencies }}" = "highest" ]; then
php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --coverage-clover=build/coverage-phpunit/clover.xml --exclude-group=integration;
composer global require scrutinizer/ocular;
~/.composer/vendor/bin/ocular code-coverage:upload --format=php-clover build/coverage-phpunit/clover.xml;
else
php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --exclude-group=integration --no-coverage;
fi;
- name: PHPUnit (Integration)
run: php -dmemory_limit=-1 vendor/phpunit/phpunit/phpunit --group=integration --no-coverage;

- name: Check code style
if: matrix.php-version == '8.0' && matrix.dependencies == 'highest' && matrix.datapack == ''
run: vendor/bin/php-cs-fixer fix --verbose --dry-run --diff --allow-risky=yes

0 comments on commit 32bfc79

Please sign in to comment.