Skip to content

Commit 5dd8c42

Browse files
Fix static analysis long output file
1 parent d44a681 commit 5dd8c42

File tree

2 files changed

+36
-19
lines changed

2 files changed

+36
-19
lines changed

jenkins_integration/github/send_sonar_results_to_github.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,27 +109,38 @@ def main():
109109
parser = argparse.ArgumentParser(description="Post SonarQube results to GitHub PR")
110110
parser.add_argument("--github_token", required=True, help="GitHub access token")
111111
parser.add_argument("--repo_owner", default="SiliconLabsSoftware", help="GitHub repository owner")
112-
parser.add_argument("--repo_name", default="matter_extension", help="GitHub repository name")
112+
parser.add_argument("--repo_name", default="matter_sdk", help="GitHub repository name")
113113
parser.add_argument("--pr_number", required=True, help="Pull request number")
114114
parser.add_argument("--commit_sha", required=True, help="Git commit SHA")
115115
parser.add_argument("--result", required=True, choices=["PASS", "FAIL"], help="SonarQube analysis result")
116116
parser.add_argument("--status", required=True, help="SonarQube quality gate status")
117117

118118
parser.add_argument("--branch_name", required=True, help="Source branch name")
119119
parser.add_argument("--target_branch", required=True, help="Target branch name")
120-
parser.add_argument("--sonar_output", required=True, help="SonarQube scanner output")
120+
parser.add_argument("--sonar_output_file", required=True, help="Path to file containing SonarQube scanner output")
121121

122122
args = parser.parse_args()
123123

124124
try:
125+
# Read SonarQube output from file
126+
try:
127+
with open(args.sonar_output_file, 'r', encoding='utf-8') as f:
128+
sonar_output = f.read()
129+
except FileNotFoundError:
130+
print(f"❌ Error: SonarQube output file not found: {args.sonar_output_file}")
131+
sys.exit(1)
132+
except Exception as e:
133+
print(f"❌ Error reading SonarQube output file: {str(e)}")
134+
sys.exit(1)
135+
125136
# Create comment body
126137
comment_body = create_comment_body(
127138
args.result,
128139
args.status,
129140
args.commit_sha,
130141
args.branch_name,
131142
args.target_branch,
132-
args.sonar_output
143+
sonar_output
133144
)
134145

135146
# Post PR comment

jenkins_integration/jenkinsFunctions.groovy

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,28 @@ def send_sonar_results_to_github(commit_sha, result, status, sonar_output, pr_nu
55
withCredentials([
66
usernamePassword(credentialsId: 'Matter-Extension-GitHub', usernameVariable: 'GITHUB_APP', passwordVariable: 'GITHUB_ACCESS_TOKEN')
77
]) {
8-
// Escape sonar output for shell command
9-
def escapedOutput = sonar_output.replace('"', '\\"').replace('`', '\\`').replace('$', '\\$')
8+
// Write sonar output to a temporary file to avoid "Argument list too long" error
9+
def tempFile = "${env.WORKSPACE}/sonar_output_${BUILD_NUMBER}.txt"
10+
writeFile file: tempFile, text: sonar_output
1011

11-
sh """
12-
python3 -u jenkins_integration/github/send_sonar_results_to_github.py \\
13-
--github_token \${GITHUB_ACCESS_TOKEN} \\
14-
--repo_owner "SiliconLabsSoftware" \\
15-
--repo_name "matter_extension" \\
16-
--pr_number ${pr_number} \\
17-
--commit_sha ${commit_sha} \\
18-
--result ${result} \\
19-
--status ${status} \\
20-
--branch_name "${branch_name}" \\
21-
--target_branch "${target_branch}" \\
22-
--sonar_output "${escapedOutput}"
23-
"""
12+
try {
13+
sh """
14+
python3 -u jenkins_integration/github/send_sonar_results_to_github.py \\
15+
--github_token \${GITHUB_ACCESS_TOKEN} \\
16+
--repo_owner "SiliconLabsSoftware" \\
17+
--repo_name "matter_extension" \\
18+
--pr_number ${pr_number} \\
19+
--commit_sha ${commit_sha} \\
20+
--result ${result} \\
21+
--status ${status} \\
22+
--branch_name "${branch_name}" \\
23+
--target_branch "${target_branch}" \\
24+
--sonar_output_file "${tempFile}"
25+
"""
26+
} finally {
27+
// Clean up temporary file
28+
sh "rm -f '${tempFile}'"
29+
}
2430
}
2531
}
2632

@@ -43,7 +49,7 @@ def publishSonarAnalysis() {
4349

4450
// Prepare global SonarQube parameters
4551
def sonarqubeParams = [
46-
"-Dsonar.projectKey=github_matter_sdk",
52+
"-Dsonar.projectKey=matter_sdk",
4753
"-Dsonar.projectBaseDir=${env.WORKSPACE}",
4854
"-Dsonar.working.directory=${env.WORKSPACE}/sonar",
4955
"-Dsonar.token=${SONAR_SECRET}",

0 commit comments

Comments
 (0)