1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
name: PHPUnit with PostgreSQL
on:
workflow_call:
inputs:
php-version:
required: true
type: string
postgres-version:
required: true
type: string
extension:
required: true
type: string
postgres-locale-provider:
required: true
type: string
config-file-suffix:
required: false
type: string
default: ''
jobs:
phpunit-postgres:
runs-on: ubuntu-24.04
services:
postgres:
image: postgres:${{ inputs.postgres-version }}
ports:
- '5432:5432'
env:
POSTGRES_PASSWORD: postgres
POSTGRES_INITDB_ARGS: ${{ inputs.postgres-locale-provider == 'icu' && '--locale-provider=icu --icu-locale=en-US' || '' }}
options: >-
--health-cmd pg_isready
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ inputs.php-version }}
extensions: ${{ inputs.extension }}
coverage: pcov
ini-values: zend.assertions=1
env:
fail-fast: true
- name: Install dependencies with Composer
uses: ramsey/composer-install@v3
with:
composer-options: '--ignore-platform-req=php+'
- name: Run PHPUnit
run: vendor/bin/phpunit -c ci/github/phpunit/${{ inputs.extension }}${{ inputs.config-file-suffix }}.xml --coverage-clover=coverage.xml
- name: Upload coverage file
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }}-${{ inputs.postgres-version }}-php-${{ inputs.php-version }}-${{ inputs.extension }}${{ inputs.config-file-suffix }}.coverage
path: coverage.xml
|