Skip to content

CI

CI #204

Workflow file for this run

# https://docs.github.com/en/actions
on:
pull_request: null
push: null
schedule:
- cron: "15 0 * * *"
name: CI
env:
COMPOSER_ROOT_VERSION: "11.1-dev"
permissions:
contents: read
jobs:
dependency-validation:
name: Dependency Validation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
coverage: none
tools: none
- name: Ensure that composer.json is valid
run: composer validate --no-ansi --strict composer.json
- name: Ensure that dependencies can be installed
run: composer install --no-ansi --dry-run
#coding-guidelines:
# name: Coding Guidelines
# if: github.event_name != 'schedule'
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v4
#
# - name: Install PHP
# uses: shivammathur/setup-php@v2
# with:
# php-version: 8.2
# coverage: none
# tools: none
# - name: Composer install
# run: composer install
# - name: Run PHP-CS-Fixer
# run: ./vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --dry-run --show-progress=dots --using-cache=no --verbose
unit-tests:
name: Unit Tests
needs:
- dependency-validation
runs-on: ${{ matrix.os }}
env:
PHP_INI_VALUES: memory_limit=-1, assert.exception=1, zend.assertions=1, error_reporting=-1, log_errors_max_len=0, display_errors=On
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
php-version:
- "8.1"
- "8.2"
- "8.3"
steps:
- name: Configure Git to avoid issues with line endings
if: matrix.os == 'windows-latest'
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v4
- name: Install PHP with extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
#extensions: ${{ env.PHP_EXTENSIONS }}
ini-values: ${{ env.PHP_INI_VALUES }}
tools: none
- name: Install dependencies with Composer
run: composer install --no-ansi --no-interaction --no-progress
- name: Run tests with PHPUnit
run: php ./vendor/phpunit/phpunit/phpunit --testsuite default
code-coverage:
name: Code Coverage
if: github.event_name != 'schedule'
needs:
- unit-tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install PHP with extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
coverage: pcov
ini-values: assert.exception=1, zend.assertions=1, error_reporting=-1, log_errors_max_len=0, display_errors=On
tools: none
- name: Install dependencies with Composer
run: composer install --no-ansi --no-interaction --no-progress
- name: Collect code coverage with PHPUnit
run: php ./vendor/phpunit/phpunit/phpunit --coverage-clover clover.xml
- name: Send code coverage report to CodeClimate
uses: paambaati/codeclimate-action@v5
env:
CC_TEST_REPORTER_ID: 7659068577b58e5f5081b36495ba746bcd9f6d16fb782dde425910fbe5eb18b4
with:
coverageLocations: ${{github.workspace}}/clover.xml:clover
debug: true