Skip to content

Commit

Permalink
[FEATURE] Add merge testing job
Browse files Browse the repository at this point in the history
  • Loading branch information
IchHabRecht committed Aug 4, 2024
1 parent 261efdf commit 722e1eb
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/compute.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ env:
OS: '[ "ubuntu-latest" ]'
COVERAGE: '[ "~9.0.0", "~9.1.0", "~9.2.0", "~10.0.0", "~10.1.0" ]'
PHP: '[ "8.0", "8.1", "8.2", "8.3" ]'
EXCLUDE: '[ { "coverage": "~10.0.0", "php": "8.0" }, { "coverage": "~10.1.0", "php": "8.0" } ]'
EXCLUDE: '[ { "coverage": "10", "php": "8.0" }, { "coverage": "~10.0.0", "php": "8.0" }, { "coverage": "~10.1.0", "php": "8.0" } ]'

jobs:
compute:
Expand Down
76 changes: 76 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,79 @@ jobs:
name: phpunit-logs-${{ runner.os }}-${{ matrix.php }}-${{ steps.version-cache.outputs.major }}-${{ matrix.coverage }}
path: .Log/*
retention-days: 1

merge:
name: 'Merge COVERAGE: ${{ matrix.coverage }} - PHP: ${{ matrix.php }}'

needs: [ compute, build ]

strategy:
fail-fast: false
matrix:
os: ${{ fromJson(needs.compute.outputs.os) }}
coverage: ${{ fromJson(needs.compute.outputs.major) }}
php: ${{ fromJson(needs.compute.outputs.php) }}
exclude: ${{ fromJson(needs.compute.outputs.exclude) }}

runs-on: ${{ matrix.os }}

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Download PHPUnit logs
uses: actions/download-artifact@v4
with:
path: .Log
pattern: phpunit-logs-${{ runner.os }}-${{ matrix.php }}-${{ matrix.coverage }}-*
merge-multiple: true

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

- uses: actions/cache/restore@v4
id: restore-composer-cache
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-${{ matrix.php }}-${{ matrix.coverage }}
restore-keys: |
${{ runner.os }}-${{ matrix.php }}-
${{ runner.os }}-
- name: Set up PHP Version ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: xdebug
tools: composer:v2

- name: Environment Check
run: |
php --version
composer --version
- name: Validate composer.json
run: composer validate

- name: Composer install
run: composer update --with "phpunit/php-code-coverage:^${{ matrix.coverage }}.0" --no-interaction

- name: Save composer cache
uses: actions/cache/save@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ steps.restore-composer-cache.outputs.cache-primary-key }}

- name: Merge log files
run: bin/phpunit-merger log .Log/log/ .Log/junit.xml

- name: Merge coverage files
run: bin/phpunit-merger coverage .Log/coverage/ .Log/coverage.xml

- name: Archive PHPUnit logs
uses: actions/upload-artifact@v4
with:
name: phpunit-logs-merged-${{ runner.os }}-${{ matrix.php }}-${{ matrix.coverage }}
path: .Log/*
retention-days: 1

0 comments on commit 722e1eb

Please sign in to comment.