123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- name: tests
- on:
- push:
- pull_request:
- schedule:
- - cron: '0 0 * * *'
- jobs:
- linux_tests:
- runs-on: ubuntu-20.04
- services:
- memcached:
- image: memcached:1.6-alpine
- ports:
- - 11211:11211
- mysql:
- image: mysql:5.7
- env:
- MYSQL_ALLOW_EMPTY_PASSWORD: yes
- MYSQL_DATABASE: forge
- ports:
- - 33306:3306
- options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
- redis:
- image: redis:5.0
- ports:
- - 6379:6379
- options: --entrypoint redis-server
- dynamodb:
- image: amazon/dynamodb-local:latest
- ports:
- - 8888:8000
- strategy:
- fail-fast: true
- matrix:
- php: ['7.3', '7.4', '8.0', '8.1']
- stability: [prefer-lowest, prefer-stable]
- name: PHP ${{ matrix.php }} - ${{ matrix.stability }}
- steps:
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php }}
- extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, gd, redis-phpredis/phpredis@5.3.5, igbinary, msgpack, lzf, zstd, lz4, memcached
- ini-values: error_reporting=E_ALL
- tools: composer:v2
- coverage: none
- env:
- REDIS_CONFIGURE_OPTS: --enable-redis --enable-redis-igbinary --enable-redis-msgpack --enable-redis-lzf --with-liblzf --enable-redis-zstd --with-libzstd --enable-redis-lz4 --with-liblz4
- REDIS_LIBS: liblz4-dev, liblzf-dev, libzstd-dev
- - name: Set Minimum PHP 8.0 Versions
- uses: nick-invision/retry@v1
- with:
- timeout_minutes: 5
- max_attempts: 5
- command: composer require guzzlehttp/guzzle:^7.2 --no-interaction --no-update
- if: matrix.php >= 8
- - name: Set Minimum PHP 8.1 Versions
- uses: nick-invision/retry@v1
- with:
- timeout_minutes: 5
- max_attempts: 5
- command: composer require league/commonmark:^2.0.2 phpunit/phpunit:^9.5.8 ramsey/collection:^1.2 brick/math:^0.9.3 --no-interaction --no-update
- if: matrix.php >= 8.1
- - name: Install dependencies
- uses: nick-invision/retry@v1
- with:
- timeout_minutes: 5
- max_attempts: 5
- command: composer update --${{ matrix.stability }} --prefer-dist --no-interaction --no-progress
- - name: Execute tests
- run: vendor/bin/phpunit --verbose
- env:
- DB_PORT: ${{ job.services.mysql.ports[3306] }}
- DB_USERNAME: root
- DYNAMODB_CACHE_TABLE: laravel_dynamodb_test
- DYNAMODB_ENDPOINT: "http://localhost:8888"
- AWS_ACCESS_KEY_ID: random_key
- AWS_SECRET_ACCESS_KEY: random_secret
- - name: Store artifacts
- uses: actions/upload-artifact@v2
- with:
- name: logs
- path: |
- vendor/orchestra/testbench-core/laravel/storage/logs
- !vendor/**/.gitignore
- windows_tests:
- runs-on: windows-2019
- strategy:
- fail-fast: true
- matrix:
- php: ['7.3', '7.4', '8.0', '8.1']
- stability: [prefer-lowest, prefer-stable]
- name: PHP ${{ matrix.php }} - ${{ matrix.stability }} - Windows
- steps:
- - name: Set git to use LF
- run: |
- git config --global core.autocrlf false
- git config --global core.eol lf
- - name: Checkout code
- uses: actions/checkout@v2
- - name: Setup PHP
- uses: shivammathur/setup-php@v2
- with:
- php-version: ${{ matrix.php }}
- extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, gd, pdo_mysql, fileinfo, ftp, redis, memcached
- tools: composer:v2
- coverage: none
- - name: Set Minimum PHP 8.0 Versions
- uses: nick-invision/retry@v1
- with:
- timeout_minutes: 5
- max_attempts: 5
- command: composer require guzzlehttp/guzzle:^7.2 --no-interaction --no-update
- if: matrix.php >= 8
- - name: Set Minimum PHP 8.1 Versions
- uses: nick-invision/retry@v1
- with:
- timeout_minutes: 5
- max_attempts: 5
- command: composer require league/commonmark:^2.0.2 phpunit/phpunit:^9.5.8 --no-interaction --no-update
- if: matrix.php >= 8.1
- - name: Install dependencies
- uses: nick-invision/retry@v1
- with:
- timeout_minutes: 5
- max_attempts: 5
- command: composer update --${{ matrix.stability }} --prefer-dist --no-interaction --no-progress
- - name: Execute tests
- run: vendor/bin/phpunit --verbose
- - name: Store artifacts
- uses: actions/upload-artifact@v2
- with:
- name: logs
- path: |
- vendor/orchestra/testbench-core/laravel/storage/logs
- !vendor/**/.gitignore
|