Aerendir/stripe-bundle

View on GitHub
.github/workflows/phpunit.yml

Summary

Maintainability
Test Coverage
name: PHPunit

on: [ push ]

# Cancels all previous workflow runs for the same branch that have not yet completed.
concurrency:
    # The concurrency group contains the workflow name and the branch name.
    group: ${{ github.workflow }}-${{ github.ref }}
    cancel-in-progress: true

jobs:
    phpunit:
        runs-on: ${{ matrix.os }}
        strategy:
            fail-fast: false
            matrix:
                os: [ ubuntu-latest ]
                # When you change a version here, change it also in the SonarCloud if condition
                php: [ '7.4', '8.0', '8.1' ]
                symfony: [ '~4.4', '~5.4', '~6.0' ]

                # This combination is not installable
                exclude:
                    - php: '7.4'
                      symfony: '~6.0'

        steps:
            -   name: Checkout
                uses: actions/checkout@v3

            -   name: Setup PHP
                uses: shivammathur/setup-php@2.21.1
                with:
                    php-version: ${{ matrix.php }}
                    coverage: pcov
                    extensions: ast

            -   name: Fix Symfony version
                run: |
                    composer req symfony/flex --no-update
                    composer config extra.symfony.require "${{ matrix.symfony }}"
                    composer config --no-plugins allow-plugins.symfony/flex true

            -   name: Remove Roave Security Advisories
                # Not compatible with symfony/framework-bundle <5.4
                run: |
                    composer rem roave/security-advisories --dev --no-update

            -   name: Install Composer deps
                uses: ramsey/composer-install@v2
                with:
                    composer-options: --no-scripts

            -   name: Update Composer deps (with Flex)
                # The second update is to make Flex able to do its job
                run: |
                    composer update --no-interaction --no-scripts

            -   name: Install Composer bin PHPUnit
                uses: ramsey/composer-install@v2
                with:
                    working-directory: './vendor-bin/phpunit'

            -   name: Remove Kernel.php
                run: |
                    rm ./src/Kernel.php

            -   name: Run PHPunit
                run: |
                    ./vendor-bin/phpunit/vendor/bin/phpunit --coverage-clover var/coverage/clover.xml

            -   name: Change paths in clover.xml
                run: |
                    sed -i 's+/home/runner/work/bundle-stripe/bundle-stripe+/github/workspace+g' ./var/coverage/clover.xml

            -   name: Sonarcloud
                if: |
                    github.ref == 'refs/heads/dev' && matrix.php == '8.1' && matrix.symfony == '~6.0'
                uses: sonarsource/sonarcloud-github-action@master
                env:
                    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                    SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}