Send code coverage to SonarCloud

This commit is contained in:
Antonio Spinelli 2023-07-03 11:37:11 -03:00
parent 7f0db0de04
commit 551c1f4cda
No known key found for this signature in database
GPG Key ID: 85B740F3F834EFC4
6 changed files with 78 additions and 25 deletions

View File

@ -1,5 +1,6 @@
name: Sonarcloud
on:
pull_request:
push:
branches:
- main
@ -12,6 +13,33 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Setup PHP with Xdebug
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
coverage: xdebug
- name: Install Composer dependencies
run: composer install --prefer-dist --no-interaction --no-progress --no-scripts
- name: Copy environment file
run: cp .env.example .env
- name: Generate app key
run: php artisan key:generate
- name: "Run tests with coverage"
run: composer coverage
- name: Fix code coverage paths
run: sed -i 's@'$GITHUB_WORKSPACE'@/github/workspace/@g' coverage.xml
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:

2
.gitignore vendored
View File

@ -7,4 +7,4 @@ npm-debug.log
yarn-error.log
.env
/.ci/php-cs-fixer/vendor
/.ci/coverage
coverage.xml

View File

@ -170,10 +170,13 @@
"@php artisan firefly-iii:verify-security-alerts"
],
"unit-test": [
"@php vendor/bin/phpunit -c phpunit.xml --testsuite unit"
"@php vendor/bin/phpunit -c phpunit.xml --testsuite unit --no-coverage"
],
"integration-test": [
"@php vendor/bin/phpunit -c phpunit.xml --testsuite integration"
"@php vendor/bin/phpunit -c phpunit.xml --testsuite integration --no-coverage"
],
"coverage": [
"@php vendor/bin/phpunit -c phpunit.xml --testsuite unit"
]
},
"config": {

View File

@ -18,25 +18,46 @@
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" bootstrap="vendor/autoload.php" colors="true" stopOnFailure="true" processIsolation="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.1/phpunit.xsd" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
<coverage/>
<testsuites>
<testsuite name="unit">
<directory suffix="Test.php">./tests/unit</directory>
</testsuite>
<testsuite name="integration">
<directory suffix="Test.php">./tests/integration</directory>
</testsuite>
</testsuites>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
</php>
<source>
<include>
<directory suffix=".php">./app</directory>
</include>
</source>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.2/phpunit.xsd"
backupGlobals="false"
backupStaticProperties="false"
beStrictAboutOutputDuringTests="true"
bootstrap="vendor/autoload.php"
cacheDirectory=".phpunit.cache"
colors="true"
executionOrder="depends,defects"
failOnRisky="true"
failOnWarning="true"
processIsolation="false"
stopOnFailure="true">
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<ini name="xdebug.mode" value="coverage"/>
</php>
<testsuites>
<testsuite name="all">
<directory suffix="Test.php">./tests</directory>
</testsuite>
<testsuite name="unit">
<directory suffix="Test.php">./tests/unit</directory>
</testsuite>
<testsuite name="integration">
<directory suffix="Test.php">./tests/integration</directory>
</testsuite>
</testsuites>
<source>
<include>
<directory suffix=".php">app</directory>
</include>
</source>
<coverage ignoreDeprecatedCodeUnits="true"
pathCoverage="true">
<report>
<clover outputFile="coverage.xml"/>
</report>
</coverage>
</phpunit>

View File

@ -15,3 +15,4 @@ sonar.organization=firefly-iii
sonar.projectVersion=6.0.11
sonar.sources=app,bootstrap,database,resources/assets,resources/views,routes,tests
sonar.sourceEncoding=UTF-8
sonar.php.coverage.reportPaths=coverage.xml

View File

@ -38,7 +38,7 @@ trait CreatesApplication
*/
public function createApplication()
{
$app = require __DIR__ . '/../bootstrap/app.php';
$app = require_once __DIR__ . '/../../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();