Skip to content

Merge remote-tracking branch 'origin/4.6' #6144

Merge remote-tracking branch 'origin/4.6'

Merge remote-tracking branch 'origin/4.6' #6144

Workflow file for this run

name: CI
on:
push:
branches:
- main
- '[0-9]+.[0-9]+'
pull_request: ~
jobs:
cs-fix:
name: Run code style check
runs-on: "ubuntu-22.04"
strategy:
matrix:
php:
- '8.3'
steps:
- uses: actions/checkout@v4
- name: Setup PHP Action
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
extensions: 'pdo_sqlite, gd'
tools: cs2pr
- uses: ramsey/composer-install@v3
with:
dependency-versions: highest
- name: Run code style check
run: composer run-script check-cs -- --format=checkstyle | cs2pr
tests:
name: Tests
runs-on: "ubuntu-22.04"
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
php:
- '8.3'
steps:
- uses: actions/checkout@v4
- name: Setup PHP Action
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
extensions: pdo_sqlite, gd
tools: cs2pr
- uses: ramsey/composer-install@v3
with:
dependency-versions: highest
- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run test suite
run: composer run-script --timeout=600 test-unit
- name: Run PHPStan analysis
run: composer run-script phpstan
integration-tests-postgres:
name: PostgreSQL integration tests
needs: tests
services:
postgres:
image: postgres:10
ports:
- 5432
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: testdb
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
--tmpfs /var/lib/postgresql/data
runs-on: "ubuntu-22.04"
timeout-minutes: 20
strategy:
matrix:
php:
- '8.3'
steps:
- uses: actions/checkout@v4
- name: Setup PHP Action
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
extensions: pdo_pgsql, gd
tools: cs2pr
- uses: ramsey/composer-install@v3
with:
dependency-versions: highest
- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run integration test suite on Postgres
run: composer run-script --timeout=600 test-integration
env:
SEARCH_ENGINE: legacy
DATABASE_URL: "pgsql://postgres:postgres@localhost:${{ job.services.postgres.ports[5432] }}/testdb?server_version=10"
integration-tests-mysql:
name: MySQL integration tests
needs: tests
services:
mysql:
image: ghcr.io/ibexa/core/mysql
ports:
- 3306/tcp
env:
MYSQL_RANDOM_ROOT_PASSWORD: true
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
MYSQL_DATABASE: testdb
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=5
--tmpfs=/var/lib/mysql
runs-on: "ubuntu-22.04"
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
php:
- '8.3'
steps:
- uses: actions/checkout@v4
- name: Setup PHP Action
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
extensions: pdo_mysql, gd
tools: cs2pr
- uses: ramsey/composer-install@v3
with:
dependency-versions: highest
- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run integration test suite vs MySQL
run: composer run-script --timeout=600 test-integration
env:
SEARCH_ENGINE: legacy
DATABASE_URL: "mysql://mysql:[email protected]:${{ job.services.mysql.ports[3306] }}/testdb"