Skip to content

Symfony 7

Symfony 7 #94

Workflow file for this run

# From https://github.com/sebastianbergmann/phpunit/blob/20ab19d3aed56fccf9569cd33c6cd0baab0ec272/.github/workflows/ci.yml
# (With many modifications)
on:
pull_request:
branches:
- main
push:
branches:
- main
name: CI
jobs:
coding-guidelines:
name: Coding Guidelines
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
coverage: none
- name: Install dependencies
run: composer install --no-ansi --no-interaction --no-progress
- name: Run phpcs
run: composer cs
- name: Run linter
run: composer lint
backward-compatibility:
name: Backward Compatibility
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Fetch tags
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
- name: Install PHP with extensions
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
coverage: none
extensions: intl
- name: Install roave/backward-compatibility-check
run: |
mkdir -p tools
echo '{}' > tools/composer.json
composer --working-dir=tools config --no-plugins allow-plugins.ocramius/package-versions true
composer --working-dir=tools require roave/backward-compatibility-check:^7
- name: Run roave/backward-compatibility-check
run: ./tools/vendor/bin/roave-backward-compatibility-check --from=5.0.0
tests:
name: Tests
runs-on: ${{ matrix.os }}
env:
PHP_EXTENSIONS: dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter
strategy:
matrix:
os:
- ubuntu-latest
- windows-latest
php-version:
- "8.2"
php-ini-values:
- assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit_buffer_size=4096M, opcache.jit=1205
dependencies:
- locked
include:
- os: ubuntu-latest
php-version: "8.0"
dependencies: highest
php-ini-values: assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit_buffer_size=4096M, opcache.jit=1205
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install PHP with extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: pcov
extensions: ${{ env.PHP_EXTENSIONS }}
ini-values: ${{ matrix.php-ini-values }}
- name: Determine composer cache directory on Linux
if: matrix.os == 'ubuntu-latest'
run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
- name: Determine composer cache directory on Windows
if: matrix.os == 'windows-latest'
run: Add-Content -Path $ENV:GITHUB_ENV -Value "COMPOSER_CACHE_DIR=~\AppData\Local\Composer"
- name: Cache dependencies installed with composer
uses: actions/cache@v1
with:
path: ${{ env.COMPOSER_CACHE_DIR }}
key: php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }}
restore-keys: |
php${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-
- name: Make sure composer.json is valid before we start modifyig it
run: composer validate
- name: Clear platform php configuration in case we need to update phpunit
run: composer config --unset platform.php
- name: Update phpunit if dependencies are locked in case phpunit version in lock file is not compatible
if: matrix.dependencies == 'locked'
run: |
composer install --no-ansi --no-interaction --no-progress
composer update --no-ansi --no-interaction --no-progress phpunit/phpunit --with-all-dependencies
- name: Install lowest dependencies with composer
if: matrix.dependencies == 'lowest'
run: composer update --no-ansi --no-interaction --no-progress --prefer-lowest
- name: Install highest dependencies with composer
if: matrix.dependencies == 'highest'
run: composer update --no-ansi --no-interaction --no-progress
# Use "script" hack to give us a tty. See https://github.com/actions/runner/issues/241#issuecomment-745902718
- name: Run tests with phpunit
if: matrix.os != 'windows-latest'
shell: 'script -q -e -c "bash {0}"'
run: composer unit
# Run without "script" on Windows
- name: Run tests with phpunit
if: matrix.os == 'windows-latest'
run: composer unit
- name: Publish code coverage to Codecov
if: matrix.os == 'ubuntu-latest' && matrix.php-version == '8.0'
run: bash <(curl -s https://codecov.io/bash)