Skip to content

Commit

Permalink
Restructure workflows, tests and dev packages (#86)
Browse files Browse the repository at this point in the history
- refactors GitHub's actions to run a matrix of tests for PHP >= 7.0
- implements
[PHPUnit-Polyfills](https://github.com/Yoast/PHPUnit-Polyfills)
- reorganizes test files for ease of access and extension
- simplifies composers, exposing one slick file for library users
- separates concerns, grouping dev-related files in the `dev` directory

### What problem does it fix?
- tests are now run for all required PHP versions
- there were 2 top-level composer files, now only the right one is
exposed

### How to test if it works?
- create a branch and set up a PR, the CI should run and test your code
against all PHP & OS versions
- expect at least 27 checks
  • Loading branch information
reimic authored Mar 22, 2024
1 parent 557dd5e commit 228977b
Show file tree
Hide file tree
Showing 32 changed files with 290 additions and 5,957 deletions.
61 changes: 0 additions & 61 deletions .github/workflows/ci.yml

This file was deleted.

47 changes: 47 additions & 0 deletions .github/workflows/phpunit-tests-run.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Run PHPUnit tests

on:
workflow_call:
inputs:
os:
description: 'Operating system to run tests on'
required: false
type: 'string'
default: 'ubuntu-latest'
php:
description: 'The version of PHP to use, in the format of X.Y'
required: true
type: 'string'
phpunit-config:
description: 'The PHPUnit configuration file to use'
required: false
type: 'string'
default: 'phpunit.xml.dist'
env:
LOCAL_PHP: ${{ inputs.php }}-fpm
PHPUNIT_CONFIG: ${{ inputs.phpunit-config }}

jobs:
phpunit-tests:
name: ${{ inputs.os }}
runs-on: ${{ inputs.os }}
timeout-minutes: 20

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '${{ inputs.php }}'
tools: phpunit-polyfills

- name: Install Composer dependencies
uses: ramsey/composer-install@v3
with:
ignore-cache: "yes"
composer-options: "--optimize-autoloader"

- name: Run PHPUnit tests
run: phpunit tests --testdox
25 changes: 25 additions & 0 deletions .github/workflows/phpunit-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: PHPUnit Tests

on:
push:
branches:
- trunk
pull_request:

jobs:
test:
name: PHP ${{ matrix.php }}
uses: ./.github/workflows/phpunit-tests-run.yml
permissions:
contents: read
secrets: inherit
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
php: [ '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3' ]

with:
os: ${{ matrix.os }}
php: ${{ matrix.php }}
phpunit-config: ${{ 'phpunit.xml.dist' }}
58 changes: 0 additions & 58 deletions composer-dev.json

This file was deleted.

Loading

0 comments on commit 228977b

Please sign in to comment.