Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 7 additions & 104 deletions .github/workflows/php.yml
Original file line number Diff line number Diff line change
@@ -1,114 +1,17 @@
name: PHP Tests
name: CI

on:
push:
branches:
- main
- release/*
pull_request:
branches:
- main

jobs:
lint:
name: Static analysis for php ${{ matrix.php }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
php: ['8.2', '8.3', '8.4']
os: ['ubuntu-latest']

steps:
- name: Checkout code base
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: pdo, pdo_sqlite
tools: phpcs

- name: Setup dependencies
run: composer require -n --no-progress overtrue/phplint

- name: PHP Lint
if: ${{ ! cancelled() }}
run: ./vendor/bin/phplint -n --exclude={^vendor/.*} ${{ matrix.phplint_options }} -- .

- name: PHP CodeSniffer
if: ${{ ! cancelled() }}
run: phpcs -wps --colors

test:
name: Unit tests with php ${{ matrix.php }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}

env:
phpunit-version: 9.5

strategy:
fail-fast: false
matrix:
php: ['8.2', '8.3', '8.4']
os: ['ubuntu-latest']

services:
mysql:
image: mariadb
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: icinga_unittest
MYSQL_USER: icinga_unittest
MYSQL_PASSWORD: icinga_unittest
options: >-
--health-cmd "mariadb -s -uroot -proot -e'SHOW DATABASES;' 2> /dev/null | grep icinga_unittest > test"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 3306/tcp

pgsql:
image: postgres
env:
POSTGRES_USER: icinga_unittest
POSTGRES_PASSWORD: icinga_unittest
POSTGRES_DB: icinga_unittest
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432/tcp

steps:
- name: Checkout code base
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: pdo, pdo_sqlite
tools: phpunit:${{ matrix.phpunit-version || env.phpunit-version }}

- name: Setup dependencies
run: composer install -n --no-progress

- name: PHPUnit
env:
MYSQL_TESTDB: icinga_unittest
MYSQL_TESTDB_HOST: 127.0.0.1
MYSQL_TESTDB_PORT: ${{ job.services.mysql.ports['3306'] }}
MYSQL_TESTDB_USER: icinga_unittest
MYSQL_TESTDB_PASSWORD: icinga_unittest
PGSQL_TESTDB: icinga_unittest
PGSQL_TESTDB_HOST: 127.0.0.1
PGSQL_TESTDB_PORT: ${{ job.services.pgsql.ports['5432'] }}
PGSQL_TESTDB_USER: icinga_unittest
PGSQL_TESTDB_PASSWORD: icinga_unittest
run: phpunit --verbose
php:
name: PHP
uses: Icinga/github-actions/.github/workflows/php.yml@main
with:
php-extensions: pdo, pdo-sqlite
databases: true
10 changes: 0 additions & 10 deletions .github/workflows/phpstan.yml

This file was deleted.

24 changes: 0 additions & 24 deletions phpcs.xml

This file was deleted.

3 changes: 0 additions & 3 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ parameters:
paths:
- src

scanDirectories:
- /usr/share/icinga-php

ignoreErrors:
-
messages:
Expand Down
17 changes: 0 additions & 17 deletions phpunit.xml

This file was deleted.

2 changes: 1 addition & 1 deletion src/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class Query implements Filterable, LimitOffsetInterface, OrderByInterface, Pagin
* });
* ```
*/
const ON_SELECT_ASSEMBLED = 'selectAssembled';
public const ON_SELECT_ASSEMBLED = 'selectAssembled';

/** @var int Count cache */
protected $count;
Expand Down
6 changes: 3 additions & 3 deletions tests/FilterProcessorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use ipl\Stdlib\Filter;
use ipl\Tests\Orm\Lib\Model\Employee;
use ipl\Tests\Orm\Lib\Model\Office;
use PHPUnit\Framework\Attributes\DataProvider;

class FilterProcessorTest extends \PHPUnit\Framework\TestCase
{
Expand Down Expand Up @@ -80,9 +81,8 @@ public function testUnequalDoesNotOverrideUnlike()
* optional other relation, is built by the ORM in a way that coincidental matches are ignored
*
* This will fail if the ORM generates a NOT IN which uses a subquery that produces NULL values.
*
* @dataProvider databases
*/
#[DataProvider('databases')]
public function testUnequalTargetingAnOptionalToManyRelationIgnoresFalsePositives(Connection $db)
{
$db->insert('office', ['id' => 1, 'city' => 'London']);
Expand Down Expand Up @@ -117,7 +117,7 @@ public function testUnequalTargetingAnOptionalToManyRelationIgnoresFalsePositive
$this->assertSame('London', $results[0]['city'] ?? 'not found');
}

/** @dataProvider databases */
#[DataProvider('databases')]
public function testNegationOfAToManyRelationWorksAcrossDatabaseAdapters(Connection $db): void
{
$db->insert('employee', ['id' => 1, 'department_id' => 1, 'name' => 'Minnie', 'role' => 'CEO']);
Expand Down
Loading