]> BookStack Code Mirror - bookstack/blob - .github/workflows/test-php.yml
215f987414577d9f870c26e9c38aee236235a581
[bookstack] / .github / workflows / test-php.yml
1 name: test-php
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, gmp
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 Database
34       run: |
35         sudo systemctl start mysql
36
37     - name: Setup Database
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: Migrate and seed the database
48       run: |
49         php${{ matrix.php }} artisan migrate --force -n --database=mysql_testing
50         php${{ matrix.php }} artisan db:seed --force -n --class=DummyContentSeeder --database=mysql_testing
51
52     - name: Run PHP tests
53       run: php${{ matrix.php }} ./vendor/bin/phpunit