1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
# https://docs.github.com/en/actions
on:
schedule:
- cron: "15 0 * * *"
workflow_dispatch: ~
name: Nightly
permissions:
contents: read
jobs:
run-tests:
name: Tests
runs-on: ${{ matrix.os }}
timeout-minutes: 10
env:
PHP_EXTENSIONS: none, ctype, curl, dom, json, libxml, mbstring, openssl, pdo, phar, tokenizer, xml, xmlwriter
PHP_INI_VALUES: memory_limit=-1, zend.assertions=1, error_reporting=-1, log_errors_max_len=0, display_errors=On
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
phpunit-branch:
- main
- 12.3
- 11.5
- 10.5
- 9.6
- 8.5
php-version:
- 8.1
- 8.2
- 8.3
- 8.4
- 8.5
- 8.6
exclude:
- phpunit-branch: main
php-version: 8.1
- phpunit-branch: main
php-version: 8.2
- phpunit-branch: 12.3
php-version: 8.1
- phpunit-branch: 12.3
php-version: 8.2
- phpunit-branch: 11.5
php-version: 8.1
steps:
- name: Configure Git to avoid issues with line endings
if: matrix.os == 'windows-latest'
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v6
with:
ref: ${{ matrix.phpunit-branch }}
- name: Install PHP with extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: ${{ env.PHP_EXTENSIONS }}
ini-values: ${{ env.PHP_INI_VALUES }}
tools: none
- name: Get Composer cache directory
id: composer-cache
shell: bash
run: |
echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"
- name: Cache Composer cache directory
uses: actions/cache@v5
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies with Composer
run: php ./tools/composer install --no-ansi --no-interaction --no-progress
- name: Run unit tests with PHPUnit
run: php ./phpunit --testsuite unit --order-by depends,random
- name: Run end-to-end tests with PHPUnit
run: php ./phpunit --testsuite end-to-end --order-by depends,random
|