Skip to content

Fix PostgreSQL

Fix PostgreSQL #434

Workflow file for this run

name: Tests
on:
push:
branches:
- master
- release/*
pull_request:
workflow_dispatch:
env:
MYSQL_IMAGE: mysql:8.0
MYSQL_PORT: 3306
MYSQL_DB_OPTIONS: "--health-cmd=\"mysqladmin ping\" --health-interval=10s --health-timeout=5s --health-retries=3"
MYSQL_PHPUNIT_CONFIG: "phpunit-ci-mysql.xml.dist"
POSTGRES_IMAGE: postgres:17
POSTGRES_PORT: 5432
POSTGRES_DB_OPTIONS: "--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3"
POSTGRES_PHPUNIT_CONFIG: "phpunit-ci-postgres.xml.dist"
MATRIX_EXCLUDE: "[{\"php\"=>\"8.3\", \"laravel\"=>\"9.*\"},{\"php\"=>\"8.1\", \"laravel\"=>\"11.*\"}]"
jobs:
# Environment variables are not available in the matrix context, so we have to define them as outputs.
prepare:
name: Prepare environment
runs-on: ubuntu-latest
outputs:
MYSQL_IMAGE: ${{ env.MYSQL_IMAGE }}
MYSQL_PORT: ${{ env.MYSQL_PORT }}
MYSQL_DB_OPTIONS: ${{ env.MYSQL_DB_OPTIONS }}
MYSQL_PHPUNIT_CONFIG: ${{ env.MYSQL_PHPUNIT_CONFIG }}
POSTGRES_IMAGE: ${{ env.POSTGRES_IMAGE }}
POSTGRES_PORT: ${{ env.POSTGRES_PORT }}
POSTGRES_DB_OPTIONS: ${{ env.POSTGRES_DB_OPTIONS }}
POSTGRES_PHPUNIT_CONFIG: ${{ env.POSTGRES_PHPUNIT_CONFIG }}
steps:
# Placeholder because a job needs a step.
- run: echo "null"
mysql-tests:
name: MySQL tests
needs: prepare
uses: cybex-gmbh/github-workflows/.github/workflows/tests.yml@feature/pass-db-image
strategy:
fail-fast: true
matrix:
php: [ 8.1, 8.2, 8.3 ]
laravel: [ 9.*, 10.*, 11.* ]
dependency-version: [ prefer-stable ]
exclude:
- php: 8.3
laravel: 9.*
- php: 8.1
laravel: 11.*
with:
DATABASE_NAME: protector_test
PHP_VERSION: ${{ matrix.php }}
LARAVEL_VERSION: ${{ matrix.laravel }}
DEPENDENCY_VERSION: ${{ matrix.dependency-version }}
TEST_COMMANDS: vendor/bin/phpunit -c ${{ needs.prepare.outputs.MYSQL_PHPUNIT_CONFIG }}
postgres-tests:
name: PostgreSQL tests
needs: prepare
uses: cybex-gmbh/github-workflows/.github/workflows/tests.yml@feature/pass-db-image
strategy:
fail-fast: true
matrix:
php: [ 8.1, 8.2, 8.3 ]
laravel: [ 9.*, 10.*, 11.* ]
dependency-version: [ prefer-stable ]
exclude:
- php: 8.3
laravel: 9.*
- php: 8.1
laravel: 11.*
with:
DATABASE_IMAGE: ${{ needs.prepare.outputs.POSTGRES_IMAGE }}
DATABASE_NAME: protector_test
DATABASE_PORT: ${{ needs.prepare.outputs.POSTGRES_PORT }}
DATABASE_USERNAME: postgres
DATABASE_CONNECTION: pgsql
DATABASE_OPTIONS: ${{ needs.prepare.outputs.POSTGRES_DB_OPTIONS }}
PHP_VERSION: ${{ matrix.php }}
LARAVEL_VERSION: ${{ matrix.laravel }}
DEPENDENCY_VERSION: ${{ matrix.dependency-version }}
TEST_COMMANDS: vendor/bin/phpunit -c ${{ needs.prepare.outputs.MYSQL_PHPUNIT_CONFIG }}