Skip to content

Full tests with oldest PHP version #17

Full tests with oldest PHP version

Full tests with oldest PHP version #17

Workflow file for this run

name: Full tests with oldest PHP version
on:
schedule:
- cron: '5 16 * * 3'
push:
branches:
- main
paths-ignore:
- '**.md'
pull_request:
branches:
- main
paths-ignore:
- '**.md'
permissions:
contents: read
pull-requests: read
jobs:
build:
runs-on: ubuntu-latest
env:
#Code Climate Secret
HAS_CC_SECRET: ${{secrets.CC_TEST_REPORTER_ID != '' }}
#Coveralls Secret
HAS_CA_SECRET: ${{secrets.COVERALLS_REPO_TOKEN != '' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP 8.1
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
coverage: pcov
tools: composer:v2
- name: Echo PHP version
run: php -v
- name: Validate composer.json
run: composer validate
- name: Create the composer.lock for the cache key
run: composer update --no-install
- name: Restore cache Composer dependencies
uses: actions/cache@v4
with:
path: vendor/
key: ${{ format('{0}-composer-php81-{1}', runner.os, hashFiles('composer.lock')) }}
restore-keys: ${{ format('{0}-composer-php81-', runner.os) }}
- name: Install dependencies
run: composer install -vvv
- name: List libraries
run: composer show
- name: Run test suite with coverage for codeclimate and upload results
if: ${{ env.HAS_CC_SECRET == 'true' }}
uses: paambaati/[email protected]
env:
CC_TEST_REPORTER_ID: ${{secrets.CC_TEST_REPORTER_ID}}
with:
coverageCommand: vendor/bin/phpunit
coverageLocations: ${{github.workspace}}/.phpunit-cache/clover.xml:clover
- name: Run test suite for forks or version without code coverage
if: ${{ env.HAS_CC_SECRET != 'true' }}
run: vendor/bin/phpunit
- name: Upload code coverage on Coveralls.io
if: ${{ env.HAS_CA_SECRET == 'true' }}
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.COVERALLS_REPO_TOKEN }}
file: ${{github.workspace}}/.phpunit-cache/clover.xml
## Quality checks
## PHP-CS-Fixer is needed with only one version of PHP
- name: Create the PHP-CS-Fixer composer.lock for the cache key
run: composer update --working-dir=quality/php-cs-fixer --no-install
- name: Cache Composer PHP-CS-FIXER packages
id: composer-phpcsfixer-cache
uses: actions/cache@v4
with:
path: quality/php-cs-fixer/vendor/
key: ${{ format('{0}-phpcsfixer-{1}', runner.os, hashFiles('quality/php-cs-fixer/vendor/composer.lock')) }}
restore-keys: ${{ format('{0}-phpcsfixer-', runner.os) }}
- name: Install PHP-CS-Fixer
run: composer install --working-dir=quality/php-cs-fixer
- name: Run PHP-CS-Fixer
run: ./quality/php-cs-fixer/vendor/bin/php-cs-fixer fix --config=quality/php-cs-fixer/.php-cs-fixer.php --dry-run --allow-risky=yes --diff
## PHP-MESS-DETECTOR
- name: Create the PHP-MESS-DETECTOR composer.lock for the cache key
run: composer update --working-dir=quality/php-mess-detector --no-install
- name: Cache Composer PHP-MESS-DETECTOR packages
id: composer-phpmd-cache
uses: actions/cache@v4
with:
path: quality/php-mess-detector/vendor/
key: ${{ format('{0}-phpmd-{1}', runner.os, hashFiles('quality/php-mess-detector/vendor/composer.lock')) }}
restore-keys: ${{ format('{0}-phpmd-', runner.os) }}
- name: Install PHP-MESS-DETECTOR
run: composer update --working-dir=quality/php-mess-detector
- name: Run PHP-MESS-DETECTOR on lib directory
run: ./quality/php-mess-detector/vendor/bin/phpmd lib text quality/php-mess-detector/ruleset.xml
- name: Run PHP-MESS-DETECTOR on tests directory
run: ./quality/php-mess-detector/vendor/bin/phpmd tests text quality/php-mess-detector/test-ruleset.xml
## PHP CODE SNIFFER
- name: Create the PHP CODE SNIFFER composer.lock for the cache key
run: composer update --working-dir=quality/php-code-sniffer --no-install
- name: Cache Composer PHP-CS packages
id: composer-php-cs-cache
uses: actions/cache@v4
with:
path: quality/php-code-sniffer/vendor/
key: ${{ format('{0}-phpcs-{1}', runner.os, hashFiles('quality/php-code-sniffer/vendor/composer.lock')) }}
restore-keys: ${{ format('{0}-phpcs-', runner.os) }}
- name: Install PHP-CS
run: composer update --working-dir=quality/php-code-sniffer
- name: Run PHP-CS
run: ./quality/php-code-sniffer/vendor/bin/phpcs --standard=quality/php-code-sniffer/phpcs.xml -s
## PHP-STAN
- name: Create the PHP-STAN composer.lock for the cache key
run: composer update --working-dir=quality/php-stan --no-install
- name: Cache Composer PHP-STAN packages
id: composer-php-stan-cache
uses: actions/cache@v4
with:
path: quality/php-stan/vendor/
key: ${{ format('{0}-phpstan-{1}', runner.os, hashFiles('quality/php-stan/vendor/composer.lock')) }}
restore-keys: ${{ format('{0}-phpstan-', runner.os) }}
- name: Install PHP-STAN
run: composer update --working-dir=quality/php-stan
- name: Run PHP-STAN
run: ./quality/php-stan/vendor/bin/phpstan analyse --configuration=quality/php-stan/php-stan.neon lib tests --error-format=table --no-progress --no-interaction --no-ansi --level=9 --memory-limit=256M -v