mirror of
https://github.com/flarum/framework.git
synced 2024-12-13 23:53:42 +08:00
84 lines
2.2 KiB
YAML
84 lines
2.2 KiB
YAML
name: Tests
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: tests
|
|
|
|
strategy:
|
|
matrix:
|
|
php: [7.3, 7.4, '8.0']
|
|
service: ['mysql:5.7', mariadb]
|
|
prefix: ['', flarum_]
|
|
|
|
include:
|
|
- service: 'mysql:5.7'
|
|
db: MySQL
|
|
- service: mariadb
|
|
db: MariaDB
|
|
- prefix: flarum_
|
|
prefixStr: (prefix)
|
|
|
|
exclude:
|
|
- php: 7.3
|
|
service: 'mysql:5.7'
|
|
prefix: flarum_
|
|
- php: 7.3
|
|
service: mariadb
|
|
prefix: flarum_
|
|
- php: 8.0
|
|
service: 'mysql:5.7'
|
|
prefix: flarum_
|
|
- php: 8.0
|
|
service: mariadb
|
|
prefix: flarum_
|
|
|
|
services:
|
|
mysql:
|
|
image: ${{ matrix.service }}
|
|
ports:
|
|
- 13306:3306
|
|
|
|
name: 'PHP ${{ matrix.php }} / ${{ matrix.db }} ${{ matrix.prefixStr }}'
|
|
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
coverage: xdebug
|
|
extensions: curl, dom, gd, json, mbstring, openssl, pdo_mysql, tokenizer, zip
|
|
tools: phpunit, composer:v2
|
|
|
|
# The authentication alter is necessary because newer mysql versions use the `caching_sha2_password` driver,
|
|
# which isn't supported prior to PHP7.4
|
|
# When we drop support for PHP7.3, we should remove this from the setup.
|
|
- name: Create MySQL Database
|
|
run: |
|
|
sudo systemctl start mysql
|
|
mysql -uroot -proot -e 'CREATE DATABASE flarum_test;' --port 13306
|
|
mysql -uroot -proot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';" --port 13306
|
|
|
|
- name: Install Composer dependencies
|
|
run: composer install
|
|
|
|
- name: Setup Composer tests
|
|
run: composer test:setup
|
|
env:
|
|
DB_PORT: 13306
|
|
DB_PASSWORD: root
|
|
DB_PREFIX: ${{ matrix.prefix }}
|
|
|
|
- name: Run Composer tests
|
|
run: composer test
|
|
env:
|
|
COMPOSER_PROCESS_TIMEOUT: 600
|