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.
101 lines
2.7 KiB
101 lines
2.7 KiB
name: "Continuous Integration" |
|
|
|
on: |
|
- pull_request |
|
- push |
|
|
|
env: |
|
COMPOSER_ROOT_VERSION: 1.99 |
|
|
|
jobs: |
|
composer-json-lint: |
|
name: "Lint composer.json" |
|
|
|
runs-on: "ubuntu-latest" |
|
|
|
strategy: |
|
matrix: |
|
php-version: |
|
- "8.1" |
|
|
|
steps: |
|
- name: "Checkout" |
|
uses: "actions/checkout@v2" |
|
|
|
- name: "Install PHP" |
|
uses: "shivammathur/setup-php@v2" |
|
with: |
|
coverage: "none" |
|
php-version: "${{ matrix.php-version }}" |
|
tools: composer-normalize |
|
|
|
- name: "Get composer cache directory" |
|
id: composercache |
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)" |
|
|
|
- name: "Cache dependencies" |
|
uses: actions/cache@v2 |
|
with: |
|
path: ${{ steps.composercache.outputs.dir }} |
|
key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-${{ hashFiles('**/composer.json') }} |
|
restore-keys: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer- |
|
|
|
- name: "Install dependencies" |
|
run: "composer update --no-interaction --no-progress" |
|
|
|
- name: "Validate composer.json" |
|
run: "composer validate --strict" |
|
|
|
- name: "Normalize composer.json" |
|
run: "composer-normalize --dry-run" |
|
|
|
tests: |
|
name: "Tests" |
|
|
|
runs-on: "ubuntu-latest" |
|
|
|
strategy: |
|
matrix: |
|
php-version: |
|
- "7.1" |
|
- "7.2" |
|
- "7.3" |
|
- "7.4" |
|
- "8.0" |
|
- "8.1" |
|
dependencies: |
|
- "lowest" |
|
- "highest" |
|
|
|
steps: |
|
- name: "Checkout" |
|
uses: "actions/checkout@v2" |
|
|
|
- name: "Install PHP" |
|
uses: "shivammathur/setup-php@v2" |
|
with: |
|
php-version: "${{ matrix.php-version }}" |
|
ini-values: zend.assertions=1 |
|
|
|
- name: "Get composer cache directory" |
|
id: composercache |
|
run: echo "::set-output name=dir::$(composer config cache-files-dir)" |
|
|
|
- name: "Cache dependencies" |
|
uses: actions/cache@v2 |
|
with: |
|
path: ${{ steps.composercache.outputs.dir }} |
|
key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer-${{ hashFiles('**/composer.json') }} |
|
restore-keys: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ matrix.dependencies }}-composer- |
|
|
|
- name: "Install lowest dependencies" |
|
if: ${{ matrix.dependencies == 'lowest' }} |
|
run: "composer update --no-interaction --no-progress --prefer-lowest" |
|
|
|
- name: "Install highest dependencies" |
|
if: ${{ matrix.dependencies == 'highest' }} |
|
run: "composer update --no-interaction --no-progress" |
|
|
|
- name: "Run tests" |
|
timeout-minutes: 3 |
|
run: "vendor/bin/phpunit"
|
|
|