forked from a64f7bb4-7358-4778-9fbe-3b882c34cc1d/v1
164 lines
4.8 KiB
YAML
164 lines
4.8 KiB
YAML
# From https://github.com/sebastianbergmann/phpunit/blob/20ab19d3aed56fccf9569cd33c6cd0baab0ec272/.github/workflows/ci.yml
|
|
# (With many modifications)
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- 3.x
|
|
push:
|
|
branches:
|
|
- 3.x
|
|
|
|
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.0
|
|
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.0
|
|
coverage: none
|
|
extensions: intl
|
|
|
|
- name: Install dependencies
|
|
run: composer install --no-ansi --no-interaction --no-progress
|
|
|
|
- name: Install roave/backward-compatibility-check
|
|
run: |
|
|
mkdir -p tools
|
|
composer --working-dir=tools require roave/backward-compatibility-check:^5
|
|
|
|
- name: Run roave/backward-compatibility-check
|
|
run: ./tools/vendor/bin/roave-backward-compatibility-check --from=2.0.1
|
|
|
|
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.0"
|
|
|
|
php-ini-values:
|
|
- assert.exception=1, zend.assertions=1
|
|
|
|
dependencies:
|
|
- locked
|
|
|
|
codecov:
|
|
- false
|
|
|
|
include:
|
|
- os: ubuntu-latest
|
|
php-version: "8.0"
|
|
dependencies: highest
|
|
codecov: true
|
|
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
|
|
|
|
- os: ubuntu-latest
|
|
php-version: "8.1"
|
|
dependencies: highest
|
|
codecov: true
|
|
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
|
|
|
|
- name: Run tests with phpunit
|
|
run: composer unit
|
|
|
|
- name: Publish code coverage to Codecov
|
|
if: matrix.codecov == true
|
|
run: bash <(curl -s https://codecov.io/bash)
|