diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml
index 6af868b..22bfa1e 100644
--- a/.github/workflows/php.yml
+++ b/.github/workflows/php.yml
@@ -1,113 +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@v5
-
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php }}
- 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/.*} -- .
-
- - 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: 8.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@v5
-
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php }}
- tools: phpunit:${{ matrix.phpunit-version || env.phpunit-version }}
- extensions: pdo, pdo-sqlite
-
- - 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
diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml
deleted file mode 100644
index 72f916d..0000000
--- a/.github/workflows/phpstan.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-name: PHPStan
-
-on:
- pull_request:
- branches:
- - main
-
-jobs:
- phpstan:
- uses: icinga/github-actions/.github/workflows/phpstan.yml@main
- with:
- dependencies: |
- {
- "/icingaweb2": "https://github.com/Icinga/icingaweb2.git"
- }
diff --git a/phpcs.xml b/phpcs.xml
deleted file mode 100644
index 1457bf0..0000000
--- a/phpcs.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
- ./
-
- vendor/*
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/phpunit.xml b/phpunit.xml
deleted file mode 100644
index 2abc060..0000000
--- a/phpunit.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- tests
-
-
-
diff --git a/tests/SharedDatabasesTest.php b/tests/SharedDatabasesTest.php
index fafc0db..641db3a 100644
--- a/tests/SharedDatabasesTest.php
+++ b/tests/SharedDatabasesTest.php
@@ -5,6 +5,8 @@
use ipl\Sql\Connection;
use ipl\Sql\Select;
use ipl\Sql\Test\SharedDatabases;
+use PHPUnit\Framework\Attributes\DataProvider;
+use PHPUnit\Framework\Attributes\Depends;
/**
* A test for a test component! Yay!
@@ -13,7 +15,7 @@ class SharedDatabasesTest extends TestCase
{
use SharedDatabases;
- /** @dataProvider sharedDatabases */
+ #[DataProvider('sharedDatabases')]
public function testInsert(Connection $db)
{
// This is the first case, so the table must have been dropped and be empty
@@ -24,10 +26,8 @@ public function testInsert(Connection $db)
$db->insert('test', ['name' => 'test2']);
}
- /**
- * @depends testInsert
- * @dataProvider sharedDatabases
- */
+ #[Depends('testInsert')]
+ #[DataProvider('sharedDatabases')]
public function testSelect(Connection $db)
{
// The previous case inserts "name=test" but tearDown removes it
@@ -36,20 +36,16 @@ public function testSelect(Connection $db)
$this->assertSame('test2', $result[0]['name']);
}
- /**
- * @depends testSelect
- * @dataProvider sharedDatabases
- */
+ #[Depends('testSelect')]
+ #[DataProvider('sharedDatabases')]
public function testUpdate(Connection $db)
{
$stmt = $db->update('test', ['name' => 'test3'], ['name = ?' => 'test2']);
$this->assertEquals(1, $stmt->rowCount());
}
- /**
- * @depends testUpdate
- * @dataProvider sharedDatabases
- */
+ #[Depends('testUpdate')]
+ #[DataProvider('sharedDatabases')]
public function testDelete(Connection $db)
{
$stmt = $db->delete('test', ['name = ?' => 'test3']);