You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
4.0 KiB
124 lines
4.0 KiB
name: main |
|
on: [ push, pull_request ] |
|
jobs: |
|
test: |
|
runs-on: ubuntu-latest |
|
strategy: |
|
matrix: |
|
php-version: |
|
- '7.1' |
|
- '7.2' |
|
- '7.3' |
|
- '7.4' |
|
- '8.0' |
|
- '8.1' |
|
- '8.2' |
|
|
|
include: |
|
- php-version: 'nightly' |
|
experimental: true |
|
|
|
name: PHP ${{ matrix.php-version }} |
|
|
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v3 |
|
|
|
- name: Setup PHP, with composer and extensions |
|
uses: shivammathur/setup-php@v2 |
|
with: |
|
php-version: ${{ matrix.php-version }} |
|
extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib |
|
coverage: none |
|
|
|
- name: Get composer cache directory |
|
id: composer-cache |
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)" |
|
|
|
- name: Cache composer dependencies |
|
uses: actions/cache@v3 |
|
with: |
|
path: ${{ steps.composer-cache.outputs.dir }} |
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} |
|
restore-keys: ${{ runner.os }}-composer- |
|
|
|
- name: Delete composer lock file |
|
id: composer-lock |
|
if: ${{ matrix.php-version == '8.0' || matrix.php-version == '8.1' || matrix.php-version == '8.2' || matrix.php-version == 'nightly' }} |
|
run: | |
|
rm composer.lock |
|
echo "::set-output name=flags::--ignore-platform-reqs" |
|
|
|
- name: Install dependencies |
|
run: composer update --no-progress --prefer-dist --optimize-autoloader ${{ steps.composer-lock.outputs.flags }} |
|
|
|
- name: Setup problem matchers for PHP |
|
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json" |
|
|
|
- name: Setup problem matchers for PHPUnit |
|
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" |
|
|
|
- name: Test with PHPUnit |
|
run: ./vendor/bin/phpunit |
|
|
|
phpcs: |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v3 |
|
|
|
- name: Setup PHP, with composer and extensions |
|
uses: shivammathur/setup-php@v2 |
|
with: |
|
php-version: 7.4 |
|
extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib |
|
coverage: none |
|
tools: cs2pr |
|
|
|
- name: Get composer cache directory |
|
id: composer-cache |
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)" |
|
|
|
- name: Cache composer dependencies |
|
uses: actions/cache@v3 |
|
with: |
|
path: ${{ steps.composer-cache.outputs.dir }} |
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} |
|
restore-keys: ${{ runner.os }}-composer- |
|
|
|
- name: Install dependencies |
|
run: composer install --no-progress --prefer-dist --optimize-autoloader |
|
|
|
- name: Code style with PHP_CodeSniffer |
|
run: ./vendor/bin/phpcs -q --report=checkstyle | cs2pr --graceful-warnings --colorize |
|
|
|
coverage: |
|
runs-on: ubuntu-latest |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v3 |
|
|
|
- name: Setup PHP, with composer and extensions |
|
uses: shivammathur/setup-php@v2 |
|
with: |
|
php-version: 7.4 |
|
extensions: ctype, dom, gd, iconv, fileinfo, libxml, mbstring, simplexml, xml, xmlreader, xmlwriter, zip, zlib |
|
coverage: pcov |
|
|
|
- name: Get composer cache directory |
|
id: composer-cache |
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)" |
|
|
|
- name: Cache composer dependencies |
|
uses: actions/cache@v3 |
|
with: |
|
path: ${{ steps.composer-cache.outputs.dir }} |
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} |
|
restore-keys: ${{ runner.os }}-composer- |
|
|
|
- name: Install dependencies |
|
run: composer install --no-progress --prefer-dist --optimize-autoloader |
|
|
|
- name: Coverage |
|
run: | |
|
./vendor/bin/phpunit --coverage-text
|
|
|