mirror of
https://github.com/dg/dibi.git
synced 2025-02-23 18:33:45 +01:00
121 lines
4.1 KiB
YAML
121 lines
4.1 KiB
YAML
name: Tests
|
|
|
|
on: [push, pull_request]
|
|
|
|
env:
|
|
php-extensions: mbstring, intl, mysqli, pgsql, sqlsrv-5.12.0, pdo_sqlsrv-5.12.0
|
|
php-tools: "composer:v2, pecl"
|
|
|
|
jobs:
|
|
tests:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
php: ['8.0', '8.1', '8.2', '8.3', '8.4']
|
|
|
|
fail-fast: false
|
|
|
|
name: PHP ${{ matrix.php }} tests
|
|
|
|
services:
|
|
mysql57:
|
|
image: mysql:5.7
|
|
env:
|
|
MYSQL_DATABASE: dibi_test
|
|
MYSQL_ROOT_PASSWORD: root
|
|
ports:
|
|
- 3306:3306
|
|
options: >-
|
|
--health-cmd "mysqladmin ping -ppass"
|
|
--health-interval 10s
|
|
--health-start-period 10s
|
|
--health-timeout 5s
|
|
--health-retries 10
|
|
|
|
mysql80:
|
|
image: mysql:8.0
|
|
ports:
|
|
- 3307:3306
|
|
options: >-
|
|
--health-cmd="mysqladmin ping -ppass"
|
|
--health-interval=10s
|
|
--health-timeout=5s
|
|
--health-retries=5
|
|
-e MYSQL_ROOT_PASSWORD=root
|
|
-e MYSQL_DATABASE=dibi_test
|
|
|
|
postgres96:
|
|
image: postgres:9.6
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: dibi_test
|
|
ports:
|
|
- 5432:5432
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
postgres13:
|
|
image: postgres:13
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: dibi_test
|
|
ports:
|
|
- 5433:5432
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
mssql:
|
|
image: mcr.microsoft.com/mssql/server:latest
|
|
env:
|
|
ACCEPT_EULA: Y
|
|
SA_PASSWORD: YourStrong!Passw0rd
|
|
MSSQL_PID: Developer
|
|
ports:
|
|
- 1433:1433
|
|
options: >-
|
|
--name=mssql
|
|
--health-cmd "/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'SELECT 1' -N -C"
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
extensions: ${{ env.php-extensions }}
|
|
tools: ${{ env.php-tools }}
|
|
coverage: none
|
|
|
|
- name: Create databases.ini
|
|
run: cp ./tests/databases.github.ini ./tests/databases.ini
|
|
|
|
- name: Create MS SQL Database
|
|
run: docker exec -i mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'CREATE DATABASE dibi_test' -N -C
|
|
|
|
- run: composer install --no-progress --prefer-dist
|
|
- run: vendor/bin/tester -p phpdbg tests -s -C --coverage ./coverage.xml --coverage-src ./src
|
|
- if: failure()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: output
|
|
path: tests/**/output
|
|
|
|
|
|
- name: Save Code Coverage
|
|
if: ${{ matrix.php == '8.0' }}
|
|
env:
|
|
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
wget https://github.com/php-coveralls/php-coveralls/releases/download/v2.4.3/php-coveralls.phar
|
|
php php-coveralls.phar --verbose --config tests/.coveralls.yml
|