--- /dev/null
+name: test-migrations
+
+on:
+ push:
+ branches:
+ - master
+ - release
+ pull_request:
+ branches:
+ - '*'
+ - '*/*'
+ - '!l10n_master'
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ php: [7.2, 7.4]
+ steps:
+ - uses: actions/checkout@v1
+
+ - 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 /etc/init.d/mysql start
+
+ - 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 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