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', '8.2'] 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 git clone --depth 1 https://github.com/Icinga/icingaweb2.git vendor/icingaweb2 git clone --depth 1 https://github.com/Icinga/icingadb-web.git vendor/icingadb-web git clone --depth 1 https://github.com/Icinga/icingaweb2-module-director.git vendor/icingaweb2-module-director git clone --depth 1 -b snapshot/nightly https://github.com/Icinga/icinga-php-library.git vendor/icinga-php-library git clone --depth 1 -b snapshot/nightly https://github.com/Icinga/icinga-php-thirdparty.git vendor/icinga-php-thirdparty - name: PHP Lint if: success() || matrix.allow_failure run: ./vendor/bin/phplint -n --exclude={^vendor/.*} -- . - name: PHP CodeSniffer if: success() || matrix.allow_failure run: phpcs - name: PHPStan uses: php-actions/phpstan@v3 if: success() || matrix.allow_failure 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: ['7.2', '7.3', '7.4', '8.0', '8.1', '8.2'] 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: phpunit:${{ matrix.phpunit-version || env.phpunit-version }} - name: Setup Icinga Web run: | git clone --depth 1 https://github.com/Icinga/icingaweb2.git _icingaweb2 ln -s `pwd` _icingaweb2/modules/businessprocess - 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 dependencies run: composer require -d _icingaweb2 -n --no-progress mockery/mockery - name: PHPUnit env: ICINGAWEB_LIBDIR: _libraries ICINGAWEB_CONFIGDIR: test/config run: phpunit --verbose --bootstrap _icingaweb2/test/php/bootstrap.php