Skip to content

Assure PHP Dev Setup #959

Assure PHP Dev Setup

Assure PHP Dev Setup #959

Workflow file for this run

# 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