devops:sonarqube
This is an old revision of the document!
Sonarqube
The sonarqube is the static code analysis tool.
Jenkins
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.1525961310.txt.gz · Last modified: (external edit)
