devops:sonarqube
This is an old revision of the document!
Table of Contents
Sonarqube
The sonarqube is the static code analysis tool.
Jenkins
Scan
To scan the code use the Jenkins plugin “SonarQube Scanner” https://techexpert.tips/sonarqube/sonarqube-scanner-installation-ubuntu-linux/
Break build
To break the build, when the sonarqube-project “workspaceteam1-project1team1” is red - one could use the following script:
#!/bin/bash CURL='/usr/bin/curl' RVMHTTP="http://sonar:9000/sonar/api/qualitygates/project_status?projectKey=workspaceteam1-project1team1" CURLARGS="-u adop:123abc123" # you can store the result in a variable raw="$($CURL $CURLARGS $RVMHTTP)" if [[ $raw = *"\"status\":\"ERROR\""* ]]; then exit 1 else exit 0 fi
Here we can retrieve the project key by using the following api:
curl -u adop:123abc123 http://52.210.126.173/sonar/api/projects/index?search="team1" [{"id":"1","k":"workspaceteam1-project1team1","nm":"WorkspaceTeam1/Project1Team1","sc":"PRJ","qu":"TRK"}]
The next step is the request of the project state
curl -u adop:123abc123 http://52.210.126.173/sonar/api/qualitygates/project_status?projectKey=workspaceteam1-project1team1 { "projectStatus":{ "status":"ERROR", "conditions":[ { "status":"OK", "metricKey":"new_vulnerabilities", "comparator":"GT", "periodIndex":1, "errorThreshold":"0", "actualValue":"0" }, { "status":"OK", "metricKey":"new_bugs", "comparator":"GT", "periodIndex":1, "errorThreshold":"0", "actualValue":"0" }, { "status":"OK", "metricKey":"new_sqale_debt_ratio", "comparator":"GT", "periodIndex":1, "errorThreshold":"1", "actualValue":"0.0" }, { "status":"ERROR", "metricKey":"bugs", "comparator":"NE", "errorThreshold":"0", "actualValue":"1" } ], "periods":[ { "index":1, "mode":"previous_version", "date":"2018-05-09T14:19:38+0000" }, { "index":2, "mode":"previous_analysis", "date":"2018-05-10T09:38:00+0000", "parameter":"2018-05-10" }, { "index":3, "mode":"days", "date":"2018-05-09T14:19:38+0000", "parameter":"30" } ] } }
devops/sonarqube.1581696529.txt.gz · Last modified: (external edit)