name: Backend Unit Tests - MySQL on: pull_request: branches: - master paths-ignore: - resources/assets/** push: branches: - master paths-ignore: - resources/assets/** workflow_dispatch: branches: - master paths-ignore: - resources/assets/** jobs: test: runs-on: ubuntu-latest strategy: matrix: php-version: [ 8.1, 8.2 ] mysql-version: [ 5.7, 8.0 ] fail-fast: false services: mysql: image: mysql:${{ matrix.mysql-version }} env: MYSQL_DATABASE: koel MYSQL_USER: mysql MYSQL_PASSWORD: mysql MYSQL_ROOT_PASSWORD: mysql ports: - 3306:3306 options: >- --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 5 env: DB_CONNECTION: mysql-ci DB_HOST: 127.0.1.1 DB_PORT: 3306 DB_DATABASE: koel DB_USERNAME: mysql DB_PASSWORD: mysql steps: - uses: actions/checkout@v1 - name: Set up PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} tools: composer:v2 coverage: xdebug extensions: pdo_sqlite, zip, gd - name: Install PHP dependencies uses: ramsey/composer-install@v2 with: composer-options: --prefer-dist - name: Generate app key run: php artisan key:generate --quiet - name: Run code style checker run: composer cs - name: Run static analysis run: composer analyze -- --no-progress - name: Run tests run: composer coverage - name: Upload logs if broken uses: actions/upload-artifact@v1 if: failure() with: name: logs path: storage/logs - name: Upload coverage uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }}