GitHub Actions: Use new PHP workflows

This commit is contained in:
Eric Lippmann 2025-10-09 10:41:44 +02:00
parent 3b732c3ff9
commit 8d3258735b
2 changed files with 21 additions and 116 deletions

View file

@ -1,110 +1,33 @@
name: PHP Tests
name: CI
on:
push:
branches:
- main
- support/*
- release/*
- support/*
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 }}
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/.*} --exclude=library/Icinga/Util/String.php ${{ matrix.phplint_options }} -- .
- name: PHP CodeSniffer
if: ${{ ! cancelled() }}
run: phpcs
test:
name: Unit tests with php ${{ matrix.php }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
php:
name: PHP
uses: Icinga/github-actions/.github/workflows/php.yml@main
with:
databases: true
php-extensions: ldap
phpunit-version: 9.6
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 }}
tools: phpunit:${{ matrix.phpunit-version || env.phpunit-version }}
extensions: mysql, pgsql, ldap
- name: Setup dependencies
run: |
composer require --no-install ipl/i18n:@dev ipl/web:@dev
composer install --no-progress
git clone --depth 1 --branch snapshot/nightly https://github.com/Icinga/icinga-php-thirdparty.git vendor/icinga-php-thirdparty
- name: PHPUnit
env:
ICINGAWEB_TEST_MYSQL_PORT: ${{ job.services.mysql.ports['3306'] }}
ICINGAWEB_TEST_PGSQL_PORT: ${{ job.services.pgsql.ports['5432'] }}
ICINGAWEB_LIBDIR: vendor/
run: phpunit --verbose
dependencies: |
{
"./icinga-php/ipl" : "https://github.com/Icinga/icinga-php-library.git#snapshot/nightly",
"./icinga-php/vendor" : "https://github.com/Icinga/icinga-php-thirdparty.git#snapshot/nightly",
"./icingaweb2-modules/icingadb" : "https://github.com/Icinga/icingadb-web.git",
"./icingaweb2-modules/pdfexport" : "https://github.com/Icinga/icingaweb2-module-pdfexport.git",
"./icingaweb2-modules/x509" : "https://github.com/Icinga/icingaweb2-module-x509.git"
}
env: |
{
"ICINGAWEB_LIBDIR" : "./icinga-php",
"ICINGAWEB_MODULES_DIR" : "modules:./icingaweb2-modules"
}

View file

@ -1,18 +0,0 @@
name: PHPStan
on:
pull_request:
branches:
- main
jobs:
phpstan:
uses: icinga/github-actions/.github/workflows/phpstan.yml@main
with:
phpExtensions: ldap
dependencies: |
{
"/usr/share/icingaweb2-modules/x509" : "https://github.com/Icinga/icingaweb2-module-x509.git",
"/usr/share/icingaweb2-modules/icingadb" : "https://github.com/Icinga/icingadb-web.git",
"/usr/share/icingaweb2-modules/pdfexport" : "https://github.com/Icinga/icingaweb2-module-pdfexport.git"
}