From e24d8ad46387ab27a408f88bb5e547956631280b Mon Sep 17 00:00:00 2001 From: Nicole Cordes Date: Mon, 5 Aug 2024 00:59:25 +0200 Subject: [PATCH] [FEATURE] Add merge testing job --- .github/workflows/test.yml | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 959dfb8..2b7c2ea 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -85,3 +85,78 @@ 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) }} + + 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: none + 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