Skip to content

Commit

Permalink
GH Actions: split PHAR building task off to own script
Browse files Browse the repository at this point in the history
While it is still a good idea to make sure the PHAR building script works on all supported PHP versions, it is not necessary to run this task against all PHP versions on all pushes, nor to have the test runs wait until all PHAR building builds are done, as for the tests we only need the PHARs generated on PHP 8.0, which are the ones used in a release.

This commit splits the PHAR building job off to its own script, only keeping the PHAR build against PHP 8.0 in the `test` workflow.

While this does mean there is now some duplication in the scripts, I find it more relevant to make the builds faster.
  • Loading branch information
jrfnl committed Dec 9, 2023
1 parent d900658 commit b8a08c9
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 12 deletions.
54 changes: 54 additions & 0 deletions .github/workflows/build-phar.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Build PHARs

on:
# Run on pushes to master and on all pull requests.
# Prevent the build from running when there are only irrelevant changes.
push:
branches:
- master
paths-ignore:
- '**.md'
pull_request:
# Allow manually triggering the workflow.
workflow_dispatch:

# Cancels all previous workflow runs for the same branch that have not yet completed.
concurrency:
# The concurrency group contains the workflow name and the branch name.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
# Deliberately missing PHP 8.0 as that PHAR is build and used in the test workflow.
php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.1', '8.2', '8.3', '8.4']

name: "Build Phar on PHP: ${{ matrix.php }}"

continue-on-error: ${{ matrix.php == '8.4' }}

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

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
ini-values: phar.readonly=Off, error_reporting=-1, display_errors=On

- name: Build the phars
run: php scripts/build-phar.php

# Both the below only check a file which is rarely changed and therefore unlikely to have issues.
# This test is about testing that the phars are functional, *not* about whether the code style complies.
- name: 'PHPCS: check code style using the Phar file to test the Phar is functional'
run: php phpcs.phar ./scripts

- name: 'PHPCBF: fix code style using the Phar file to test the Phar is functional'
run: php phpcbf.phar ./scripts
15 changes: 3 additions & 12 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,7 @@ concurrency:
jobs:
build:
runs-on: ubuntu-latest

strategy:
matrix:
php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4']

name: "Build Phar on PHP: ${{ matrix.php }}"

continue-on-error: ${{ matrix.php == '8.2' }}
name: "Build Phar on PHP: 8.0"

steps:
- name: Checkout code
Expand All @@ -35,7 +28,7 @@ jobs:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
php-version: '8.0'
coverage: none
ini-values: phar.readonly=Off, error_reporting=-1, display_errors=On

Expand All @@ -44,7 +37,6 @@ jobs:

- name: Upload the PHPCS phar
uses: actions/upload-artifact@v3
if: ${{ success() && matrix.php == '8.0' }}
with:
name: phpcs-phar
path: ./phpcs.phar
Expand All @@ -53,14 +45,13 @@ jobs:

- name: Upload the PHPCBF phar
uses: actions/upload-artifact@v3
if: ${{ success() && matrix.php == '8.0' }}
with:
name: phpcbf-phar
path: ./phpcbf.phar
if-no-files-found: error
retention-days: 28

# Both the below only check a few files which are rarely changed and therefore unlikely to have issues.
# Both the below only check a file which is rarely changed and therefore unlikely to have issues.
# This test is about testing that the phars are functional, *not* about whether the code style complies.
- name: 'PHPCS: check code style using the Phar file to test the Phar is functional'
run: php phpcs.phar ./scripts
Expand Down

0 comments on commit b8a08c9

Please sign in to comment.