chore: update CI workflows and SonarCloud configuration for improved analysis and coverage reporting

- Unified CI workflow with fail-fast behavior, streamlining stages for formatting, linting, testing, and SonarCloud analysis.
- Enhanced SonarCloud configuration to exclude test files and improve security hotspot analysis.
- Removed outdated coverage and lint workflows, consolidating functionality into the main CI pipeline.
- Updated README to reflect changes in CI structure and added details on workflow stages and requirements.
This commit is contained in:
0x524a
2025-12-02 22:39:42 -05:00
parent 02f79ea7a7
commit 306c69ba89
5 changed files with 333 additions and 343 deletions
+23 -6
View File
@@ -7,7 +7,7 @@ sonar.projectVersion=1.0.0
# Source code location
sonar.sources=.
sonar.exclusions=**/vendor/**,**/*_test.go,**/examples/**,**/cmd/**,**/server/**,**/testing/**
sonar.exclusions=**/vendor/**,**/*_test.go,**/examples/**,**/cmd/**,**/testdata/**,**/testing/**
# Test settings
sonar.tests=.
@@ -15,15 +15,32 @@ sonar.test.inclusions=**/*_test.go
sonar.test.exclusions=**/vendor/**
# Go specific settings
sonar.language=go
sonar.go.coverage.reportPaths=coverage.out
sonar.go.tests.reportPaths=test-report.json
# Source encoding
sonar.sourceEncoding=UTF-8
# Coverage exclusions
sonar.coverage.exclusions=**/cmd/**,**/examples/**,**/server/**,**/testing/**,**/*_test.go
# Coverage exclusions - exclude non-production code from coverage metrics
sonar.coverage.exclusions=**/cmd/**,**/examples/**,**/server/**,**/testing/**,**/testdata/**,**/*_test.go
# Duplications
sonar.cpd.exclusions=**/*_test.go
# Duplications exclusions
sonar.cpd.exclusions=**/*_test.go,**/testdata/**
# Security Hotspot exclusions - skip test files and CI configuration
# These files don't represent production security concerns
sonar.security.hotspots.exclusions=**/*_test.go,**/testing/**,**/testdata/**,**/.github/**,**/examples/**,**/cmd/**
# Issue exclusions for specific rules in test files
sonar.issue.ignore.multicriteria=e1,e2,e3
# Ignore security issues in test files
sonar.issue.ignore.multicriteria.e1.ruleKey=go:S5042
sonar.issue.ignore.multicriteria.e1.resourceKey=**/*_test.go
# Ignore hardcoded credentials in test/example files (test credentials are expected)
sonar.issue.ignore.multicriteria.e2.ruleKey=go:S6418
sonar.issue.ignore.multicriteria.e2.resourceKey=**/*_test.go
sonar.issue.ignore.multicriteria.e3.ruleKey=go:S6418
sonar.issue.ignore.multicriteria.e3.resourceKey=**/examples/**