EscolaLMS/Files

View on GitHub
.github/workflows/test-cc.yml

Summary

Maintainability
Test Coverage
name: Tests Code Coverage

on:
  # Trigger the workflow on push or pull request,
  # but only for the main branch
  push:
    branches:
      - main
      - master
  pull_request:

jobs:
  phpunit-code-coverage:
    runs-on: ubuntu-latest
    container:
      image: escolalms/php:8.2

    services:
      mysql:
        image: mysql:5.7
        env:
          MYSQL_ROOT_PASSWORD: root
          MYSQL_DATABASE: database
          MYSQL_PASSWORD: password
          MYSQL_USER: username
        ports:
          - 33306:3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

    steps:
      - name: Instantiate package
        run: apt-get install git -y

      - name: Instantiate package
        uses: actions/checkout@v2

      - name: Setup environment
        run: cp -r env/codecov/. .

      - name: Update composer
        run: composer update

      - name: Clear config
        run: vendor/bin/testbench config:clear

      - name: Publish things
        run: vendor/bin/testbench migrate:fresh

      - name: require phpunit-github-actions-printer
        run: COMPOSER_ROOT_VERSION=0.9.9 composer require --dev mheap/phpunit-github-actions-printer

      - name: Run tests
        run: XDEBUG_MODE=coverage vendor/bin/phpunit  --coverage-clover coverage.xml --printer mheap\\GithubActionsReporter\\Printer

      - name: codecov upload
        uses: codecov/codecov-action@v1

      - name: Setup Code Climate test-reporter
        run: |
            curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
            chmod +x ./cc-test-reporter

      - name: SafeDirFix
        run: git config --global safe.directory '*'

      - name: Convert
        run: ./cc-test-reporter format-coverage coverage.xml -t clover -o codeclimate.0.json

      - name: Upload
        run: ./cc-test-reporter upload-coverage -i codeclimate.0.json
        env:
          CC_TEST_REPORTER_ID: c6181fbfaa81c63d366e8fd85764047743e7b84ccdff16b763107e6453c917b1