on: push: branches: - v5-develop pull_request: branches: - v5-develop name: phpunit jobs: run: runs-on: ${{ matrix.operating-system }} strategy: matrix: operating-system: ['ubuntu-18.04', 'ubuntu-20.04'] php-versions: ['7.4','8.0','8.1'] phpunit-versions: ['latest'] env: DB_DATABASE1: ninja DB_USERNAME1: root DB_PASSWORD1: ninja DB_HOST1: '127.0.0.1' DB_DATABASE: ninja DB_USERNAME: root DB_PASSWORD: ninja DB_HOST: '127.0.0.1' BROADCAST_DRIVER: log CACHE_DRIVER: file QUEUE_CONNECTION: sync SESSION_DRIVER: file NINJA_ENVIRONMENT: hosted MULTI_DB_ENABLED: false NINJA_LICENSE: 123456 TRAVIS: true MAIL_MAILER: log services: mariadb: image: mariadb:latest ports: - 32768:3306 env: MYSQL_ALLOW_EMPTY_PASSWORD: yes MYSQL_USER: ninja MYSQL_PASSWORD: ninja MYSQL_DATABASE: ninja MYSQL_ROOT_PASSWORD: ninja options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 steps: - name: Add hosts to /etc/hosts run: | sudo echo "127.0.0.1 ninja.test" | sudo tee -a /etc/hosts - name: Start mysql service run: | sudo /etc/init.d/mysql start - name: Verify MariaDB connection env: DB_PORT: ${{ job.services.mariadb.ports[3306] }} DB_PORT1: ${{ job.services.mariadb.ports[3306] }} run: | while ! mysqladmin ping -h"127.0.0.1" -P"$DB_PORT" --silent; do sleep 1 done - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-versions }} extensions: mysql, mysqlnd, sqlite3, bcmath, gmp, gd, curl, zip, openssl, mbstring, xml - uses: actions/checkout@v1 with: ref: v5-develop fetch-depth: 1 - name: Copy .env run: | cp .env.ci .env - name: Install composer dependencies run: | composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }} composer install - name: Prepare Laravel Application run: | php artisan key:generate php artisan optimize php artisan cache:clear php artisan config:cache - name: Create DB and schemas run: | mkdir -p database touch database/database.sqlite - name: Migrate Database run: | php artisan migrate:fresh --seed --force && php artisan db:seed --force - name: Prepare JS/CSS assets run: | npm i npm run production - name: Run Testsuite run: | cat .env vendor/bin/phpunit --testdox env: DB_PORT: ${{ job.services.mysql.ports[3306] }} PHP_CS_FIXER_IGNORE_ENV: true - name: Run php-cs-fixer run: | PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix