diff --git a/.github/workflows/run-tests-with-coverage.yml b/.github/workflows/run-tests-with-coverage.yml index d5667ed..e251824 100644 --- a/.github/workflows/run-tests-with-coverage.yml +++ b/.github/workflows/run-tests-with-coverage.yml @@ -2,9 +2,9 @@ name: Run tests with coverage on: push: - branches: ["master"] + branches: [ "master" ] pull_request: - branches: ["master"] + branches: [ "master" ] jobs: tests-with-coverage: @@ -36,25 +36,22 @@ jobs: - 5432:5432 steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} - extensions: mbstring, pdo, pdo_pgsql, gd, dom, fileinfo, pgsql coverage: xdebug + tools: composer:v2 env: POSTGRES_HOST: postgres POSTGRES_PORT: 5432 - + - name: Checkout + uses: actions/checkout@v4 - name: Set up PostgreSQL run: | sudo apt-get update sudo apt-get install -y postgresql-client psql --version - - name: Wait for PostgreSQL run: | echo "Waiting for PostgreSQL to be ready..." @@ -68,14 +65,36 @@ jobs: done echo "PostgreSQL failed to start" exit 1 - - - name: Install Composer dependencies + - name: Install Dependencies run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist + - name: Execute unit tests via PHPUnit with coverage + run: vendor/bin/phpunit --coverage-clover build/logs/clover.xml + - name: Export coverage report + if: ${{ matrix.php-version == '8.4' }} + uses: actions/upload-artifact@v4 + with: + name: clover.xml + path: build/logs - - name: Run PHPUnit tests with coverage - run: php -d xdebug.mode=coverage vendor/bin/phpunit --coverage-clover=build/logs/clover.xml --stop-on-failure ./tests/ - + upload-to-coveralls: + needs: tests-with-coverage + runs-on: ubuntu-latest + steps: + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: "8.4" + tools: composer:v2 + - name: Checkout + uses: actions/checkout@v4 + - name: Import coverage report + uses: actions/download-artifact@v4 + with: + name: clover.xml + path: build/logs - name: Upload coverage results to Coveralls env: COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: php vendor/bin/php-coveralls --coverage_clover=build/logs/clover.xml -v + run: | + composer global require php-coveralls/php-coveralls + php-coveralls --coverage_clover=build/logs/clover.xml -v --json_path=coveralls-upload.json \ No newline at end of file