Skip to content

Tests

Tests #379

Workflow file for this run

name: Tests
on:
push:
branches: [ main ]
pull_request: null
schedule:
# Do not make it the first of the month and/or midnight since it is a very busy time
- cron: "* 10 5 * *"
jobs:
tests:
runs-on: ubuntu-latest
name: Test ${{ matrix.php }}; Symfony ${{ matrix.symfony-version }} (${{ matrix.dependency }})
strategy:
fail-fast: false
matrix:
php:
- '8.2'
- '8.3'
dependency: [ highest, lowest ]
symfony-version:
- 'unchanged'
- '6.*.*'
- '7.*.*'
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: "${{ matrix.php }}"
tools: composer, flex
coverage: none
- name: Configure the Symfony version
if: matrix.symfony != 'unchanged'
run: echo "SYMFONY_REQUIRE=${{ matrix.symfony }}" >> $GITHUB_ENV
- name: Install Composer dependencies
uses: ramsey/composer-install@v3
with:
dependency-versions: ${{ matrix.dependency }}
- run: make phpunit
infection:
runs-on: ubuntu-latest
name: Infection
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Setup PHP"
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
tools: composer
coverage: pcov
- name: Install Composer dependencies
uses: ramsey/composer-install@v3
- run: make infection
# This is a "trick", a meta task which does not change, and we can use in
# the protected branch rules as opposed to the individual tests which
# may change regularly.
validate-tests:
name: Check status
runs-on: ubuntu-latest
needs:
- tests
- infection
if: always()
steps:
- name: Successful run
if: ${{ !(contains(needs.*.result, 'failure')) }}
run: exit 0
- name: Failing run
if: ${{ contains(needs.*.result, 'failure') }}
run: exit 1