mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-08-26 20:22:18 +00:00
![Dan Brown](/assets/img/avatar_default.png)
Old branch filters did not seem to work since they are supposed to reference the target branch, not source branch. Instead used if statement to prevent run on crowdin branch.
57 lines
1.8 KiB
YAML
57 lines
1.8 KiB
YAML
name: test-migrations
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
if: ${{ github.ref != 'refs/heads/l10n_development' }}
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
matrix:
|
|
php: ['7.4', '8.0', '8.1']
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
extensions: gd, mbstring, json, curl, xml, mysql, ldap
|
|
|
|
- name: Get Composer Cache Directory
|
|
id: composer-cache
|
|
run: |
|
|
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
|
|
- name: Cache composer packages
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-composer-${{ matrix.php }}
|
|
|
|
- name: Start MySQL
|
|
run: |
|
|
sudo systemctl start mysql
|
|
|
|
- name: Create database & user
|
|
run: |
|
|
mysql -uroot -proot -e 'CREATE DATABASE IF NOT EXISTS `bookstack-test`;'
|
|
mysql -uroot -proot -e "CREATE USER 'bookstack-test'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bookstack-test';"
|
|
mysql -uroot -proot -e "GRANT ALL ON \`bookstack-test\`.* TO 'bookstack-test'@'localhost';"
|
|
mysql -uroot -proot -e 'FLUSH PRIVILEGES;'
|
|
|
|
- name: Install composer dependencies
|
|
run: composer install --prefer-dist --no-interaction --ansi
|
|
|
|
- name: Start migration test
|
|
run: |
|
|
php${{ matrix.php }} artisan migrate --force -n --database=mysql_testing
|
|
|
|
- name: Start migration:rollback test
|
|
run: |
|
|
php${{ matrix.php }} artisan migrate:rollback --force -n --database=mysql_testing
|
|
|
|
- name: Start migration rerun test
|
|
run: |
|
|
php${{ matrix.php }} artisan migrate --force -n --database=mysql_testing
|