Assure PHP Dev Setup #959
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# For details of what checks are run for PRs please refer below | |
# docs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions | |
name: Assure PHP Dev Setup | |
on: | |
push: | |
branches: ["master"] | |
paths: | |
- '.github/workflows/php-dev.yml' | |
- 'tools/**' | |
- 'composer.json' | |
- 'composer.lock' | |
pull_request: | |
paths: | |
- '.github/workflows/php-dev.yml' | |
- 'tools/**' | |
- 'composer.json' | |
- 'composer.lock' | |
workflow_dispatch: | |
schedule: | |
# schedule weekly tests, since dependencies are not intended to be locked | |
# this means: at 23:42 on Fridays | |
- cron: '42 23 * * 5' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
PHP_VERSION_LATEST: "8.3" | |
PHP_PROJECT_EXT: dom,filter,json,libxml,simplexml # via `composer info -pt` | |
jobs: | |
asure-dev-setup: | |
name: DevSetup (${{ matrix.os}}, ${{ matrix.php }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "ubuntu-latest" | |
- "macos-latest" | |
- "windows-latest" | |
php: | |
- "8.3" # highest supported | |
- "8.2" | |
- "8.1" # lowest supported | |
timeout-minutes: 10 | |
steps: | |
- name: Checkout | |
# see https://github.com/actions/checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
# see https://github.com/shivammathur/setup-php | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: ${{ env.PHP_PROJECT_EXT }} | |
tools: composer:v2 | |
- name: Get composer cache directory | |
id: composer-cache | |
shell: bash | |
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
if: ${{ steps.composer-cache.outputs.dir }} | |
# see https://github.com/actions/cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: composer-${{ github.job }}-${{ runner.os }}-${{ matrix.php }}-${{ hashFiles('composer.*', 'tools/*/composer.*') }} | |
restore-keys: | | |
composer-${{ github.job }}-${{ runner.os }}-${{ matrix.php }}- | |
composer-${{ github.job }}-${{ runner.os }}- | |
- name: Dev-Setup | |
run: > | |
composer run-script -- | |
dev-setup | |
--no-interaction |