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
|
name: PHPUnit with SQL Server
on:
workflow_call:
inputs:
php-version:
required: true
type: string
sqlserver-version:
required: true
type: string
extension:
required: true
type: string
collation:
required: true
type: string
jobs:
phpunit-sqlserver:
runs-on: ubuntu-22.04
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:${{ inputs.sqlserver-version }}-latest
ports:
- '1433:1433'
env:
ACCEPT_EULA: 'Y'
SA_PASSWORD: Doctrine2018
MSSQL_COLLATION: ${{ inputs.collation }}
options: >-
--health-cmd "echo quit | /opt/mssql-tools18/bin/sqlcmd -C -S 127.0.0.1 -l 1 -U sa -P Doctrine2018"
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
tools: pecl
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 }}.xml --coverage-clover=coverage.xml
- name: Upload coverage file
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }}-${{ inputs.sqlserver-version }}-php-${{ inputs.php-version }}-${{ inputs.extension }}-${{ inputs.collation }}.coverage
path: coverage.xml
|