mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-29 16:54:06 +02:00
Add php action workflow
This commit is contained in:
parent
fc7bfe7db9
commit
aaf59945d9
173
.github/workflows/php.yml
vendored
Normal file
173
.github/workflows/php.yml
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
name: PHP Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- release/*
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
name: Static analysis for php ${{ matrix.php }} on ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php: ['7.2', '7.3', '7.4', '8.0', '8.1']
|
||||
os: ['ubuntu-latest']
|
||||
|
||||
steps:
|
||||
- name: Checkout code base
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- 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
|
||||
|
||||
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: ['7.2', '7.3', '7.4', '8.0', '8.1']
|
||||
os: ['ubuntu-latest']
|
||||
include:
|
||||
- php: '7.2'
|
||||
phpunit-version: 8.5
|
||||
|
||||
services:
|
||||
mysql:
|
||||
image: mariadb
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_DATABASE: director_test
|
||||
MYSQL_USER: director_test
|
||||
MYSQL_PASSWORD: director_test
|
||||
options: >-
|
||||
--health-cmd "mariadb -s -uroot -proot -e'SHOW DATABASES;' 2> /dev/null | grep director_test > test"
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
ports:
|
||||
- 3306/tcp
|
||||
|
||||
pgsql:
|
||||
image: postgres
|
||||
env:
|
||||
POSTGRES_USER: director_test
|
||||
POSTGRES_PASSWORD: director_test
|
||||
POSTGRES_DB: director_test
|
||||
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@v3
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php }}
|
||||
tools: phpunit:${{ matrix.phpunit-version || env.phpunit-version }}
|
||||
extensions: mysql, pgsql
|
||||
|
||||
- name: Setup Icinga Web
|
||||
run: |
|
||||
git clone --depth 1 https://github.com/Icinga/icingaweb2.git _icingaweb2
|
||||
ln -s `pwd` _icingaweb2/modules/director
|
||||
|
||||
- name: Setup Libraries
|
||||
run: |
|
||||
mkdir _libraries
|
||||
git clone --depth 1 -b snapshot/nightly https://github.com/Icinga/icinga-php-library.git _libraries/ipl
|
||||
git clone --depth 1 -b snapshot/nightly https://github.com/Icinga/icinga-php-thirdparty.git _libraries/vendor
|
||||
|
||||
- name: Setup Incubator
|
||||
run: |
|
||||
git clone --depth 1 https://github.com/Icinga/icingaweb2-module-incubator _icingaweb2/modules/incubator
|
||||
mkdir -p test/config/enabledModules
|
||||
cd _icingaweb2/modules/incubator
|
||||
ln -s `pwd` ../../../test/config/enabledModules/incubator
|
||||
composer require --no-update \
|
||||
"gipfl/calendar": "dev-master as 99.x-dev" \
|
||||
"gipfl/cli": "dev-master as 99.x-dev" \
|
||||
"gipfl/curl": "dev-master as 99.x-dev" \
|
||||
"gipfl/data-type": "dev-master as 99.x-dev" \
|
||||
"gipfl/db-migration": "dev-master as 99.x-dev" \
|
||||
"gipfl/diff": "dev-master as 99.x-dev" \
|
||||
"gipfl/format": "dev-master as 99.x-dev" \
|
||||
"gipfl/icinga-bundles": "dev-master as 99.x-dev" \
|
||||
"gipfl/icinga-cli-daemon": "dev-master as 99.x-dev" \
|
||||
"gipfl/icingaweb2": "dev-master as 99.x-dev" \
|
||||
"gipfl/influxdb": "dev-master as 99.x-dev" \
|
||||
"gipfl/json": "dev-master as 99.x-dev" \
|
||||
"gipfl/linux-health": "dev-master as 99.x-dev" \
|
||||
"gipfl/log": "dev-master as 99.x-dev" \
|
||||
"gipfl/process": "dev-master as 99.x-dev" \
|
||||
"gipfl/protocol-jsonrpc": "dev-master as 99.x-dev" \
|
||||
"gipfl/protocol-netstring": "dev-master as 99.x-dev" \
|
||||
"gipfl/react-utils": "dev-master as 99.x-dev" \
|
||||
"gipfl/simple-daemon": "dev-master as 99.x-dev" \
|
||||
"gipfl/socket": "dev-master as 99.x-dev" \
|
||||
"gipfl/stream": "dev-master as 99.x-dev" \
|
||||
"gipfl/systemd": "dev-master as 99.x-dev" \
|
||||
"gipfl/translation": "dev-master as 99.x-dev" \
|
||||
"gipfl/web": "dev-master as 99.x-dev" \
|
||||
"gipfl/zfdb": "dev-master as 99.x-dev" \
|
||||
"gipfl/zfdbstore": "dev-master as 99.x-dev"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
git config user.name "github-actions[bot]"
|
||||
bin/make-release.sh snapshot
|
||||
|
||||
- name: PHPUnit with MySQL
|
||||
if: ${{ ! cancelled() }}
|
||||
env:
|
||||
ICINGAWEB_LIBDIR: _libraries
|
||||
ICINGAWEB_CONFIGDIR: test/config
|
||||
DIRECTOR_TESTDB_RES: Director MySQL TestDB
|
||||
DIRECTOR_TESTDB: director_test
|
||||
DIRECTOR_TESTDB_HOST: 127.0.0.1
|
||||
DIRECTOR_TESTDB_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||
DIRECTOR_TESTDB_USER: director_test
|
||||
DIRECTOR_TESTDB_PASSWORD: director_test
|
||||
run: phpunit --verbose --bootstrap _icingaweb2/test/php/bootstrap.php
|
||||
|
||||
- name: PHPUnit with PostgreSQL
|
||||
if: ${{ ! cancelled() }}
|
||||
env:
|
||||
ICINGAWEB_LIBDIR: _libraries
|
||||
ICINGAWEB_CONFIGDIR: test/config
|
||||
DIRECTOR_TESTDB_RES: Director PostgreSQL TestDB
|
||||
DIRECTOR_TESTDB: director_test
|
||||
DIRECTOR_TESTDB_HOST: 127.0.0.1
|
||||
DIRECTOR_TESTDB_PORT: ${{ job.services.pgsql.ports['5432'] }}
|
||||
DIRECTOR_TESTDB_USER: director_test
|
||||
DIRECTOR_TESTDB_PASSWORD: director_test
|
||||
run: phpunit --verbose --bootstrap _icingaweb2/test/php/bootstrap.php
|
@ -69,6 +69,9 @@ abstract class BaseTestCase extends PHPUnit_Framework_TestCase
|
||||
if (array_key_exists('DIRECTOR_TESTDB_HOST', $_SERVER)) {
|
||||
$dbConfig->host = $_SERVER['DIRECTOR_TESTDB_HOST'];
|
||||
}
|
||||
if (array_key_exists('DIRECTOR_TESTDB_PORT', $_SERVER)) {
|
||||
$dbConfig->port = $_SERVER['DIRECTOR_TESTDB_PORT'];
|
||||
}
|
||||
if (array_key_exists('DIRECTOR_TESTDB_USER', $_SERVER)) {
|
||||
$dbConfig->username = $_SERVER['DIRECTOR_TESTDB_USER'];
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user