Skip to content

Commit

Permalink
Add PHP build and test composite actions
Browse files Browse the repository at this point in the history
  • Loading branch information
admdly committed Dec 6, 2023
1 parent 1422a3f commit d4ac06f
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 0 deletions.
38 changes: 38 additions & 0 deletions .github/actions/php-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: 'PHP Build'
description: 'Create PHP build, installing required dependencies.'
inputs:
cache-deps:
description: 'Whether to cache composer dependencies.'
required: false
default: 'true'
composer-args:
description: 'The arguments to pass to composer when installing dependencies.'
required: false
default: ''
php-version:
description: 'The PHP version to use.'
required: false
default: 'latest'
runs:
using: 'composite'
steps:
- name: 'Validate composer.json and composer.lock'
uses: php-actions/composer@v6
with:
command: validate
php_version: ${{ inputs.php-version }}

- name: 'Cache Composer Dependencies'
id: composer-cache
if: ${{ inputs.cache-deps == 'true' }}
uses: actions/cache@v3
with:
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
path: './src/vendor'

- name: 'Install Composer Dependencies'
if: ${{ steps.composer-cache.outputs.cache-hit != 'true' }}
uses: php-actions/composer@v6
with:
args: ${{ inputs.composer-args }}
php_version: ${{ inputs.php-version }}
60 changes: 60 additions & 0 deletions .github/actions/php-test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: 'PHP Tests'
description: 'Run PHPStan and/or PHPUnit tests.'
inputs:
php-version:
description: 'The PHP version to use.'
default: 'latest'
required: false
# PHPStan options
phpstan-enable:
description: 'Whether to enable PHPStan.'
default: true
required: false
phpstan-config:
description: 'The location of the PHPStan configuration file (phpstan.neon).'
default: 'phpstan.neon'
required: false
phpstan-memory-limit:
description: 'The memory limit for PHPStan.'
default: '512M'
required: false
phpstan-php-version:
description: 'The PHP version to use with PHPStan.'
default: 'latest'
required: false
phpstan-version:
description: 'The version of PHPStan to use.'
default: 'latest'
required: false
# PHPUnit options
phpunit-enable:
description: 'Whether to enable PHPUnit.'
default: true
required: false
phpunit-config-file:
description: 'The location of the PHPUnit configuration file (phpunit.xml.dist).'
default: 'phpunit.xml.dist'
required: false
phpunit-version:
description: 'The version of PHPUnit to use.'
default: 'latest'
required: false
runs:
using: 'composite'
steps:
- name: 'PHPStan'
if: ${{ inputs.phpstan-enable && inputs.php-version == inputs.phpstan-php-version }}
uses: php-actions/phpstan@v3
with:
configuration: ${{ inputs.phpstan-config }}
memory_limit: ${{ inputs.phpstan-memory-limit }}
php_version: ${{ inputs.phpstan-php-version }}
version: ${{ inputs.phpstan-version }}

- name: 'PHPUnit'
if: ${{ inputs.phpunit-enable }}
uses: php-actions/phpunit@v3
with:
configuration: ${{ inputs.phpunit-config }}
php_version: ${{ inputs.php-version }}
version: ${{ inputs.phpunit-version }}

0 comments on commit d4ac06f

Please sign in to comment.