mirror of
https://github.com/barryvdh/ReflectionDocBlock.git
synced 2026-08-18 01:57:13 +00:00
The way things were set up now in the `phpunit` job, no matter whether tests passed or failed, the workflow would always continue. I suspect this may have been set-up this way to make sure that all variations of test runs will actually be run ? The downside is that, while you will see a ❌ for the individual build in the workflow summary, the workflow will not be marked as failed, nor will the individual test builds be marked as failed. If we look back at the last time the workflow was run completely, this can be seen in the annotations below the summary, which show that the Windows test runs all failed. https://github.com/phpDocumentor/ReflectionDocBlock/actions/runs/370378454 I'm proposing to change this now by: * Removing the `continue-on-error` for the test run. * Adding the `fail-fast` key and setting it to `false`. By default this key is set to `true`, which means that if any individual build within the job fails, all other builds within the job will be cancelled. By setting it to `false`, all builds in the matrix will still be run, but if any of them fail, the workflow will be marked as "failed".
212 lines
5.9 KiB
YAML
212 lines
5.9 KiB
YAML
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
# Allow manually triggering the workflow.
|
|
workflow_dispatch:
|
|
name: Qa workflow
|
|
env:
|
|
phiveGPGKeys: 4AA394086372C20A,D2CCAC42F6295E7D,E82B2FB314E9906E,8A03EA3B385DBAA1
|
|
jobs:
|
|
setup:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: composer
|
|
uses: docker://composer
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
args: install --no-interaction --prefer-dist --optimize-autoloader
|
|
|
|
- name: composer-require-checker
|
|
uses: docker://phpga/composer-require-checker-ga
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
args: check --config-file ./composer-require-config.json composer.json
|
|
|
|
phpunit-with-coverage:
|
|
runs-on: ubuntu-latest
|
|
name: Unit tests
|
|
needs: setup
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: composer
|
|
uses: docker://composer
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
args: install --no-interaction --prefer-dist --optimize-autoloader
|
|
|
|
- name: PHPUnit
|
|
uses: docker://phpdoc/phpunit-ga:latest
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Quick check code coverage level
|
|
run: php tests/coverage-checker.php 91
|
|
|
|
phpunit:
|
|
name: Unit tests for PHP version ${{ matrix.php-versions }} on ${{ matrix.operating-system }}
|
|
runs-on: ${{ matrix.operating-system }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
operating-system:
|
|
- ubuntu-latest
|
|
- windows-latest
|
|
- macOS-latest
|
|
php-versions: ['7.2', '7.3', '7.4', '8.0']
|
|
env:
|
|
extensions: mbstring
|
|
key: cache-v1 # can be any string, change to clear the extension cache.
|
|
|
|
needs:
|
|
- setup
|
|
- phpunit-with-coverage
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Setup cache environment
|
|
id: cache-env
|
|
uses: shivammathur/cache-extensions@v1
|
|
with:
|
|
php-version: ${{ matrix.php-versions }}
|
|
extensions: ${{ env.extensions }}
|
|
key: ${{ env.key }}
|
|
|
|
- name: Cache extensions
|
|
uses: actions/[email protected]
|
|
with:
|
|
path: ${{ steps.cache-env.outputs.dir }}
|
|
key: ${{ steps.cache-env.outputs.key }}
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php-versions }}
|
|
extensions: ${{ env.extensions }}
|
|
ini-values: memory_limit=2G, display_errors=On, error_reporting=-1
|
|
tools: phive
|
|
|
|
- name: Install PHAR dependencies
|
|
env:
|
|
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: phive --no-progress install --copy --trust-gpg-keys ${{ env.phiveGPGKeys }} --force-accept-unsigned
|
|
|
|
- name: Install phpunit 8 for php 7.2
|
|
if: matrix.php-versions == '7.2'
|
|
env:
|
|
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: phive --no-progress install --copy --trust-gpg-keys ${{ env.phiveGPGKeys }} phpunit:^8.5
|
|
|
|
- name: Install Composer dependencies & cache dependencies
|
|
uses: "ramsey/composer-install@v1"
|
|
with:
|
|
composer-options: --optimize-autoloader
|
|
|
|
- name: Run PHPUnit
|
|
run: php tools/phpunit
|
|
|
|
codestyle:
|
|
runs-on: ubuntu-latest
|
|
needs: [setup, phpunit]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Restore/cache vendor folder
|
|
uses: actions/[email protected]
|
|
with:
|
|
path: vendor
|
|
key: all-build-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
all-build-${{ hashFiles('**/composer.lock') }}
|
|
all-build-
|
|
- name: Code style check
|
|
uses: phpDocumentor/coding-standard@latest
|
|
with:
|
|
args: -s
|
|
|
|
phpstan:
|
|
runs-on: ubuntu-latest
|
|
needs: [setup, phpunit]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: composer
|
|
uses: docker://composer
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
args: install --no-interaction --prefer-dist --optimize-autoloader
|
|
|
|
- name: PHPStan
|
|
uses: phpDocumentor/[email protected]
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
args: analyse src --configuration phpstan.neon
|
|
|
|
psalm:
|
|
name: Psalm
|
|
runs-on: ${{ matrix.operating-system }}
|
|
strategy:
|
|
matrix:
|
|
operating-system:
|
|
- ubuntu-latest
|
|
php-versions: ['7.2']
|
|
env:
|
|
extensions: mbstring
|
|
key: cache-v1 # can be any string, change to clear the extension cache.
|
|
|
|
needs:
|
|
- setup
|
|
- phpunit
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Setup cache environment
|
|
id: cache-env
|
|
uses: shivammathur/cache-extensions@v1
|
|
with:
|
|
php-version: ${{ matrix.php-versions }}
|
|
extensions: ${{ env.extensions }}
|
|
key: ${{ env.key }}
|
|
|
|
- name: Cache extensions
|
|
uses: actions/[email protected]
|
|
with:
|
|
path: ${{ steps.cache-env.outputs.dir }}
|
|
key: ${{ steps.cache-env.outputs.key }}
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php-versions }}
|
|
extensions: ${{ env.extensions }}
|
|
ini-values: memory_limit=2G, display_errors=On, error_reporting=-1
|
|
|
|
- name: Install Composer dependencies & cache dependencies
|
|
uses: "ramsey/composer-install@v1"
|
|
with:
|
|
composer-options: --optimize-autoloader
|
|
|
|
- name: Run psalm
|
|
run: vendor/bin/psalm.phar --output-format=github
|
|
|
|
|
|
bc_check:
|
|
name: BC Check
|
|
runs-on: ubuntu-latest
|
|
needs: [setup, phpunit]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: fetch tags
|
|
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
|
|
- name: BC Check
|
|
uses: docker://nyholm/roave-bc-check-ga
|