Skip to content

Description of branch rules #19

Description of branch rules

Description of branch rules #19

Workflow file for this run

# https://dev.to/thejaredwilcurt/coverage-badge-with-github-actions-finally-59fa
# https://github.com/marketplace/actions/dynamic-badges
name: build
on: [push]
jobs:
build:
name: Tests PHP ${{ matrix.php-version }}
runs-on: ubuntu-20.04
strategy:
matrix:
php-version: ['8.3']
steps:
- name: "PHP ${{ matrix.php-version }}: Checkout"
uses: actions/checkout@v3
- name: "PHP ${{ matrix.php-version }}: Install"
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: mbstring, simplexml, dom
coverage: xdebug
- name: "PHP ${{ matrix.php-version }}: Verify Composer '--strict-psr'"
run: composer dump-autoload -o --dry-run --strict-psr
- name: "PHP ${{ matrix.php-version }}: Get composer cache directory"
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: "PHP ${{ matrix.php-version }}: Cache composer dependencies"
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
# Use composer.json for key, if composer.lock is not committed.
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: "PHP ${{ matrix.php-version }}: Install Composer dependencies"
run: |
composer config --no-interaction allow-plugins.dealerdirect/phpcodesniffer-composer-installer true
composer install --no-progress --prefer-dist --optimize-autoloader
- name: "PHP ${{ matrix.php-version }}: Make N/A code coverage badge in case pipeline below fails"
uses: schneegans/[email protected]
with:
auth: ${{ secrets.GIST_SECRET_README_BADGES }}
gistID: a6e4ffd4089e5e6a13e307c707849eb7
filename: test-coverage__${{ github.head_ref || github.ref_name }}.json
label: Test Coverage
message: "N/A"
color: red
- name: "PHP ${{ matrix.php-version }}: Make N/A phpstan badge in case pipeline below fails"
uses: schneegans/[email protected]
with:
auth: ${{ secrets.GIST_SECRET_README_BADGES }}
gistID: a6e4ffd4089e5e6a13e307c707849eb7
filename: phpstan-level__${{ github.head_ref || github.ref_name }}.json
label: PHPStan Level
message: "N/A"
color: red
- name: "PHP ${{ matrix.php-version }}: Run PHPUnit tests and make coverage report"
run: |
cd tests && ../vendor/bin/phpunit --coverage-clover=coverage.xml --coverage-text=coverage.txt
echo "COVERAGE=$(grep -E '^ +Lines: +[0-9]+(\.[0-9]+)?% ' coverage.txt | sed -E 's/^ +Lines: +([0-9]+(\.([0-9]+)?))%.+$/\1/')" >> $GITHUB_ENV
- name: "PHP ${{ matrix.php-version }}: Generate code coverage percentage badge"
uses: schneegans/[email protected]
with:
auth: ${{ secrets.GIST_SECRET_README_BADGES }}
gistID: a6e4ffd4089e5e6a13e307c707849eb7
filename: test-coverage__${{ github.head_ref || github.ref_name }}.json
label: Test Coverage
message: ${{ env.COVERAGE }}%
valColorRange: ${{ env.COVERAGE }}
maxColorRange: 100
minColorRange: 0
- name: "PHP ${{ matrix.php-version }}: Run PHPStan"
run: vendor/bin/phpstan.phar
- name: "PHP ${{ matrix.php-version }}: Register PHPStan Level value in $GITHUB_ENV"
run: echo "PHPSTAN_LEVEL=$(.github/make-phpstan-level-badge-value.php)" >> $GITHUB_ENV
- name: "PHP ${{ matrix.php-version }}: Generate PHPStan Level badge"
uses: schneegans/[email protected]
with:
auth: ${{ secrets.GIST_SECRET_README_BADGES }}
gistID: a6e4ffd4089e5e6a13e307c707849eb7
filename: phpstan-level__${{ github.head_ref || github.ref_name }}.json
label: PHPStan Level
message: ${{ env.PHPSTAN_LEVEL }}
valColorRange: ${{ env.PHPSTAN_LEVEL }}
maxColorRange: 9
minColorRange: 0
- name: "PHP ${{ matrix.php-version }}: Run phpcs"
run: vendor/bin/phpcs -n -q