New: Ability to run global validators after field validation. Previously #311
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Unit | |
on: | |
pull_request: | |
push: | |
jobs: | |
unit-test: | |
name: Unit | |
runs-on: ubuntu-latest | |
container: | |
image: ${{ (matrix.php == '5.4' || matrix.php == '5.5' || matrix.php == '5.6' || matrix.php == '7.0' || matrix.php == '7.1' || matrix.php == '7.2' || matrix.php == '7.3') && 'php' || 'ghcr.io/mvorisek/image-php' }}:${{ matrix.php }} | |
strategy: | |
fail-fast: false | |
matrix: | |
php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', 'latest'] | |
type: ['Lint'] | |
# php: ['7.4', '8.0', '8.1', 'latest'] | |
# type: ['Phpunit'] | |
include: | |
- php: 'latest' | |
type: 'CodingStyle' | |
- php: 'latest' | |
type: 'StaticAnalysis' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Configure PHP (for PHP < 7.4) | |
if: matrix.php == '5.4' || matrix.php == '5.5' || matrix.php == '5.6' || matrix.php == '7.0' || matrix.php == '7.1' || matrix.php == '7.2' || matrix.php == '7.3' | |
run: | | |
php --version | |
echo 'deb [trusted=yes] http://archive.debian.org/debian jessie main' > /etc/apt/sources.list | |
apt-get -y update | |
apt-get -y install ca-certificates wget | |
wget -q -O composer https://getcomposer.org/download/latest-2.2.x/composer.phar && chmod +x composer && mv composer /usr/bin | |
composer --version | |
composer config -g disable-tls true | |
sed -i 's/require-dev/require-xxx/g' composer.json | |
- name: Configure PHP (for PHP >= 7.4) | |
if: matrix.php != '5.4' && matrix.php != '5.5' && matrix.php != '5.6' && matrix.php != '7.0' && matrix.php != '7.1' && matrix.php != '7.2' && matrix.php != '7.3' | |
run: | | |
rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini | |
php --version | |
- name: Setup cache 1/2 | |
id: composer-cache | |
run: | | |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Setup cache 2/2 | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ matrix.type }}-${{ hashFiles('composer.json') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
- name: Install PHP dependencies | |
run: | | |
composer update --ansi --prefer-dist --no-interaction --no-progress --optimize-autoloader | |
- name: "Run Lint (only for Lint)" | |
if: matrix.type == 'Lint' | |
run: | | |
find . -not -path './vendor/*' -type f -name '*.php' -exec php -l {} \; | tee lint.txt | |
(grep -q 'Errors parsing' lint.txt || exit 0 && exit 1) | |
php -r 'require_once "vendor/autoload.php"; new \DataTables\Editor(); echo "composer autoload ok\n";' | |
sed -i 's/\$db = /\/\//g' Bootstrap.php | |
php -r 'require_once "DataTables.php"; new \DataTables\Editor(); echo "manual bootstrap ok\n";' | |
- name: "Run tests (only for Phpunit)" | |
if: startsWith(matrix.type, 'Phpunit') | |
run: | | |
vendor/bin/phpunit --exclude-group none --no-coverage -v | |
- name: Check Coding Style (only for CodingStyle) | |
if: matrix.type == 'CodingStyle' | |
run: | | |
vendor/bin/php-cs-fixer fix --dry-run --using-cache=no --diff --verbose | |
- name: Run Static Analysis (only for StaticAnalysis) | |
if: matrix.type == 'StaticAnalysis' | |
run: | | |
echo "memory_limit = 2G" > /usr/local/etc/php/conf.d/custom-memory-limit.ini | |
vendor/bin/phpstan analyse |