Skip to content

Commit

Permalink
Update to test against php 8 (#40)
Browse files Browse the repository at this point in the history
* Update to test against php 8

* Composer lock update

* Remove commandline tool; it was only useful for ad-hoc testing.

* Disable backwards compatibility temporarily

* Adjust expected values in tests for Windows.
  • Loading branch information
greg-1-anderson committed Feb 20, 2021
1 parent c932e70 commit 6355893
Show file tree
Hide file tree
Showing 20 changed files with 2,064 additions and 6,934 deletions.
158 changes: 158 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# 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: 7.4
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: 7.4
coverage: none
extensions: intl

- 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 (Disabled for now; re-enable with release of 3.1.0)
run: echo ./tools/vendor/bin/roave-backward-compatibility-check --from=3.1.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:
- "7.4"

php-ini-values:
- assert.exception=1, zend.assertions=1

dependencies:
- locked

include:
- os: ubuntu-latest
php-version: "7.1"
dependencies: lowest

- os: ubuntu-latest
php-version: "7.4"
dependencies: highest

- 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

- name: Run tests with phpunit
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)
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ box.phar
build
alias-tool.phar
vendor/
.phpunit.result.cache
61 changes: 0 additions & 61 deletions .scenarios.lock/install

This file was deleted.

1 change: 0 additions & 1 deletion .scenarios.lock/phpunit5/.gitignore

This file was deleted.

73 changes: 0 additions & 73 deletions .scenarios.lock/phpunit5/composer.json

This file was deleted.

Loading

0 comments on commit 6355893

Please sign in to comment.