diff --git a/.github/workflows/laravel.yml b/.github/workflows/laravel.yml index d818762..2cc1c04 100644 --- a/.github/workflows/laravel.yml +++ b/.github/workflows/laravel.yml @@ -1,4 +1,4 @@ -name: Laravel +name: Laravel test via MySQL on: push: @@ -11,32 +11,45 @@ jobs: runs-on: ubuntu-latest + services: + mysql: + image: mysql:5.7 + env: + MYSQL_DATABASE: test_db + MYSQL_USER: user + MYSQL_PASSWORD: secret + MYSQL_ROOT_PASSWORD: secretroot + ports: + - 3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + steps: - - uses: shivammathur/setup-php@15c43e89cdef867065b0213be354c2841860869e - with: - php-version: '8.1' - - uses: actions/checkout@v3 - - name: Copy .env - run: php -r "file_exists('.env') || copy('.env.example', '.env');" - - name: Install Dependencies -# run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist - run: composer update -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist -# - name: Compser dump -# run: composer dump-autoload --no-ansi --no-interaction --no-scripts - - name: Directory Permissions - run: chmod -R 777 storage bootstrap/cache - - name: Create Database - run: | - mkdir -p database - touch database/database.sqlite - - name: Execute tests (Unit and Feature tests) via PHPUnit - env: - DB_CONNECTION: sqlite - DB_DATABASE: database/database.sqlite - run: vendor/bin/phpunit - - name: Generate key - run: php artisan key:generate - - name: Database seeder test - run: php artisan migrate:fresh --seed - - name : Developer test - run: php artisan test + - uses: actions/checkout@v2 + + - name: Verify MySQL connection + run: | + mysql --version + sudo apt-get install -y mysql-client + mysql --host 127.0.0.1 --port ${{ job.services.mysql.ports['3306'] }} -uuser -psecret -e "SHOW DATABASES" + - name: Copy .env + run: php -r "file_exists('.env') || copy('.env.github', '.env');" + + - name: Install Dependencies + run: composer install -q --no-ansi --no-interaction --no-scripts --no-suggest --no-progress --prefer-dist + + - name: Directory Permissions + run: chmod -R 777 storage bootstrap/cache + + - name: Execute tests (Unit and Feature tests) via PHPUnit + env: + MYSQL_DATABASE: test_db + DB_USERNAME: user + DB_PASSWORD: secret + DB_PORT: ${{ job.services.mysql.ports[3306] }} + run: php artisan key:generate + + - name: Database seeder test + run: php artisan migrate:fresh --seed + + - name : Developer test + run: php artisan tes