Skip to content

feat: streamline Composer cache setup in GitHub Actions workflow #17

feat: streamline Composer cache setup in GitHub Actions workflow

feat: streamline Composer cache setup in GitHub Actions workflow #17

Workflow file for this run

name: PHP Composer
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
permissions:
contents: read
jobs:
tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
php-versions: [8.3]
dependency-stability: ["prefer-stable"]
name: P${{ matrix.php-versions }} - ${{ matrix.dependency-stability }} - ${{ matrix.operating-system}}
steps:
- name: Checkout code
uses: actions/checkout@v4
-
name: Install PHP versions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
-
name: Get Composer Cache Directory 2
id: composer-cache
run: |
echo "::set-output name=dir::$(composer config cache-files-dir)"
-
name: Cache Composer dependencies
uses: actions/cache@v4
id: actions-cache
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
-
name: Cache PHP dependencies
uses: actions/cache@v4
id: vendor-cache
with:
path: vendor
key: ${{ runner.OS }}-build-${{ hashFiles('**/composer.lock') }}
-
name: Update Dependencies with latest stable
if: matrix.dependency-stability == 'prefer-stable'
run: composer update --prefer-stable
-
name: PHP Version
run: php --version
# Code quality
-
name: Execute tests (Unit and Feature tests) via PestPHP
run: ./vendor/bin/pest --coverage-clover clover.xml
# Coverage badge
-
name: Create coverage badge
run: vendor/bin/php-coverage-badger clover.xml coverage.svg