Build #402
Workflow file for this run
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: Build | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '0 3 * * 1' # Every monday at 3am | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
php-version: | |
- 7.4.0 | |
- 7.4 | |
- 8.0 | |
- 8.1 | |
- 8.2 | |
- 8.3 | |
include: | |
- php-version: 7.4.0 | |
prefer-lowest: true | |
- php-version: 7.4 | |
check-code: true | |
test-integration: true | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
coverage: pcov | |
- name: Validate configs | |
run: composer validate | |
# One cache key per day because of missing lock file, stale caches are deleted after 7 days | |
- name: Get current date | |
id: current-date | |
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
id: cache | |
uses: actions/cache@v3 | |
with: | |
path: vendor | |
key: ${{ runner.os }}-PHP${{ matrix.php-version }}-${{ steps.current-date.outputs.date }} | |
restore-keys: | | |
${{ runner.os }}-PHP${{ matrix.php-version }}- | |
${{ runner.os }}- | |
- name: Prefer lowest dependencies | |
if: ${{ matrix.prefer-lowest }} | |
run: echo 'COMPOSER_PREFER_LOWEST=1' >> $GITHUB_ENV | |
- name: Install dependencies | |
run: composer update --prefer-dist --prefer-stable --no-progress | |
- name: Unit tests | |
run: composer test-unit | |
- name: Integration tests | |
if: ${{ matrix.test-integration }} | |
run: composer test-integration | |
env: | |
PATREON_KEY: ${{ secrets.patreon_key }} | |
- name: Analyze code | |
if: ${{ matrix.check-code }} | |
run: composer analyze-code | |
- name: Check code | |
if: ${{ matrix.check-code }} | |
run: composer check-code | |
env: | |
PHP_CS_FIXER_IGNORE_ENV: 1 | |
- name: Upload coverage report | |
run: composer upload-coverage | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.github_token }} | |
COVERALLS_PARALLEL: true | |
COVERALLS_FLAG_NAME: PHP ${{ matrix.php-version }} | |
finish: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls finished | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.github_token }} | |
parallel-finished: true |