GuilhermeStracini/POC-GHActions-CI-PHPLaravel

View on GitHub
.github/workflows/deep-source.yml

Summary

Maintainability
Test Coverage
name: Deep Source

on:
    push:
        branches:
            - main
    pull_request:
        types: [opened, synchronize, reopened]

jobs:
    DeepSource:
        name: Deep Source Coverage report
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
              with:
                  ref: ${{ github.event.pull_request.head.sha }}

            - name: Install DeepSource scanner
              run: curl https://deepsource.io/cli | sh
            
            - 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

            - 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 src tests
              env:
                  XDEBUG_MODE: coverage

            - name: Build and analyze
              env:
                  DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
              run: ./bin/deepsource report --analyzer test-coverage --key php --value-file coverage.xml