GuilhermeStracini/POC-GHActions-CI-PHPLaravel

View on GitHub
.github/workflows/build.yml

Summary

Maintainability
Test Coverage
name: Build

on:
  pull_request:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup PHP runtime
        uses: shivammathur/setup-php@v2
        with:
          coverage: "none"

      - name: Cache Composer dependencies
        uses: actions/cache@v4
        with:
          path: /tmp/composer-cache
          key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }}

      - name: Install dependencies
        uses: "php-actions/composer@v6"
        with:
          dev: yes
          progress: yes

      - name: Set up environment
        run: |
          php -r "file_exists('.env') || copy('.env.example', '.env');"
          php artisan key:generate

      - name: PHPUnit Tests
        uses: php-actions/phpunit@v3
        with:
          version: 11
          php_version: 8.3
          php_extensions: xdebug
          coverage_cobertura: coverage.xml
          configuration: phpunit.xml
          test_suffix: Test.php
          args: --coverage-filter tests
        env:
          XDEBUG_MODE: coverage