]> BookStack Code Mirror - bookstack/blob - .github/workflows/test-migrations.yml
82f5ae258b3c82491a0c0feb2a1061a50330102f
[bookstack] / .github / workflows / test-migrations.yml
1 name: test-migrations
2
3 on: [push, pull_request]
4
5 jobs:
6   build:
7     if: ${{ github.ref != 'refs/heads/l10n_development' }}
8     runs-on: ubuntu-22.04
9     strategy:
10       matrix:
11         php: ['7.4', '8.0', '8.1', '8.2']
12     steps:
13       - uses: actions/checkout@v1
14
15       - name: Setup PHP
16         uses: shivammathur/setup-php@v2
17         with:
18           php-version: ${{ matrix.php }}
19           extensions: gd, mbstring, json, curl, xml, mysql, ldap
20
21       - name: Get Composer Cache Directory
22         id: composer-cache
23         run: |
24           echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
25
26       - name: Cache composer packages
27         uses: actions/cache@v3
28         with:
29           path: ${{ steps.composer-cache.outputs.dir }}
30           key: ${{ runner.os }}-composer-${{ matrix.php }}
31           restore-keys: ${{ runner.os }}-composer-
32
33       - name: Start MySQL
34         run: |
35           sudo systemctl start mysql
36
37       - name: Create database & user
38         run: |
39           mysql -uroot -proot -e 'CREATE DATABASE IF NOT EXISTS `bookstack-test`;'
40           mysql -uroot -proot -e "CREATE USER 'bookstack-test'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bookstack-test';"
41           mysql -uroot -proot -e "GRANT ALL ON \`bookstack-test\`.* TO 'bookstack-test'@'localhost';"
42           mysql -uroot -proot -e 'FLUSH PRIVILEGES;'
43
44       - name: Install composer dependencies
45         run: composer install --prefer-dist --no-interaction --ansi
46
47       - name: Start migration test
48         run: |
49           php${{ matrix.php }} artisan migrate --force -n --database=mysql_testing
50
51       - name: Start migration:rollback test
52         run: |
53           php${{ matrix.php }} artisan migrate:rollback --force -n --database=mysql_testing
54
55       - name: Start migration rerun test
56         run: |
57           php${{ matrix.php }} artisan migrate --force -n --database=mysql_testing