121 lines
3.2 KiB
YAML
121 lines
3.2 KiB
YAML
|
# https://docs.github.com/en/actions
|
||
|
|
||
|
name: "CI"
|
||
|
|
||
|
on:
|
||
|
pull_request: ~
|
||
|
push:
|
||
|
branches:
|
||
|
- "master"
|
||
|
|
||
|
env:
|
||
|
COMPOSER_ROOT_VERSION: 1.99
|
||
|
|
||
|
jobs:
|
||
|
coding-standards:
|
||
|
name: "Coding Standards"
|
||
|
|
||
|
runs-on: "ubuntu-latest"
|
||
|
|
||
|
steps:
|
||
|
- name: "Checkout"
|
||
|
uses: "actions/checkout@v2.3.4"
|
||
|
|
||
|
- name: "Install PHP"
|
||
|
uses: "shivammathur/setup-php@2.9.0"
|
||
|
with:
|
||
|
coverage: "none"
|
||
|
extensions: "mbstring"
|
||
|
php-version: "7.4"
|
||
|
tools: "composer-normalize"
|
||
|
|
||
|
- name: "Validate composer.json"
|
||
|
run: "composer validate --strict"
|
||
|
|
||
|
- name: "Normalize composer.json"
|
||
|
run: "composer-normalize --dry-run"
|
||
|
|
||
|
- name: "PHP-CS-Fixer"
|
||
|
uses: "docker://oskarstark/php-cs-fixer-ga:2.18.0"
|
||
|
with:
|
||
|
args: "--dry-run --diff-format udiff"
|
||
|
|
||
|
static-code-analysis:
|
||
|
name: "Static Code Analysis"
|
||
|
|
||
|
runs-on: "ubuntu-latest"
|
||
|
|
||
|
steps:
|
||
|
- name: "Checkout"
|
||
|
uses: "actions/checkout@v2.3.4"
|
||
|
|
||
|
- name: "Install PHP"
|
||
|
uses: "shivammathur/setup-php@2.9.0"
|
||
|
with:
|
||
|
coverage: "none"
|
||
|
extensions: "mbstring"
|
||
|
php-version: "7.4"
|
||
|
|
||
|
- name: "Install dependencies with composer"
|
||
|
run: "composer update --no-interaction --no-progress && composer i --working-dir=ci"
|
||
|
|
||
|
- name: "Run vimeo/psalm"
|
||
|
run: "ci/vendor/bin/psalm --threads=4"
|
||
|
|
||
|
tests:
|
||
|
name: "Tests"
|
||
|
|
||
|
runs-on: "ubuntu-latest"
|
||
|
|
||
|
strategy:
|
||
|
matrix:
|
||
|
php-version:
|
||
|
- "7.2"
|
||
|
- "7.3"
|
||
|
- "7.4"
|
||
|
- "8.0"
|
||
|
|
||
|
steps:
|
||
|
- name: "Checkout"
|
||
|
uses: "actions/checkout@v2.3.4"
|
||
|
|
||
|
- name: "Install PHP"
|
||
|
uses: "shivammathur/setup-php@2.9.0"
|
||
|
with:
|
||
|
coverage: "none"
|
||
|
extensions: "mbstring"
|
||
|
php-version: "${{ matrix.php-version }}"
|
||
|
|
||
|
- name: "Install dependencies with composer"
|
||
|
run: "composer update --no-interaction --no-progress"
|
||
|
|
||
|
- name: "Run unit tests"
|
||
|
run: "vendor/bin/phpunit"
|
||
|
|
||
|
windows-tests:
|
||
|
name: "Windows tests"
|
||
|
|
||
|
runs-on: "windows-latest"
|
||
|
|
||
|
strategy:
|
||
|
matrix:
|
||
|
php-version:
|
||
|
- "7.4"
|
||
|
|
||
|
steps:
|
||
|
- name: "Checkout"
|
||
|
uses: "actions/checkout@v2.3.4"
|
||
|
|
||
|
- name: "Install PHP"
|
||
|
uses: "shivammathur/setup-php@2.9.0"
|
||
|
with:
|
||
|
coverage: "none"
|
||
|
extensions: "mbstring"
|
||
|
php-version: "${{ matrix.php-version }}"
|
||
|
|
||
|
- name: "Install dependencies with composer"
|
||
|
run: "composer update --no-interaction --no-progress"
|
||
|
|
||
|
- name: "Run unit tests"
|
||
|
run: "vendor/bin/phpunit tests/AssertTest.php"
|