Merge pull request #8 from saitho/feature/branch-configuration

Pass branch name to Sonar
This commit is contained in:
Rogan 2019-11-21 18:54:26 +08:00 committed by GitHub
commit 8738de3efa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 20 deletions

View File

@ -60,6 +60,7 @@ Safety first, the host and token are stored in Drone Secrets.
* DEBUG: Display INFO logs + more details at DEBUG level.
* TRACE: Display DEBUG logs + the timings of all ElasticSearch queries and Web API calls executed by the SonarQube Scanner.
* `showProfiling`: Display logs to see where the analyzer spends time. Default value `false`
* `branchAnalysis`: Pass currently analysed branch to SonarQube. (Must not be active for initial scan!) Default value `false`
# Notes

Binary file not shown.

12
main.go
View File

@ -43,6 +43,11 @@ func main() {
Usage: "Project version",
EnvVar: "DRONE_BUILD_NUMBER",
},
cli.StringFlag{
Name: "branch",
Usage: "Project branch",
EnvVar: "DRONE_BRANCH",
},
cli.StringFlag{
Name: "timeout",
Usage: "Web request timeout",
@ -77,6 +82,11 @@ func main() {
Value: "false",
EnvVar: "PLUGIN_SHOWPROFILING",
},
cli.BoolFlag{
Name: "branchAnalysis",
Usage: "execute branchAnalysis",
EnvVar: "PLUGIN_BRANCHANALYSIS",
},
}
app.Run(os.Args)
@ -91,12 +101,14 @@ func run(c *cli.Context) {
Token: c.String("token"),
Version: c.String("ver"),
Branch: c.String("branch"),
Timeout: c.String("timeout"),
Sources: c.String("sources"),
Inclusions: c.String("inclusions"),
Exclusions: c.String("exclusions"),
Level: c.String("level"),
showProfiling: c.String("showProfiling"),
branchAnalysis: c.Bool("branchAnalysis"),
},
}

View File

@ -1,9 +1,9 @@
package main
import (
"strings"
"fmt"
"os/exec"
"strings"
)
type (
@ -14,12 +14,14 @@ type (
Token string
Version string
Branch string
Sources string
Timeout string
Inclusions string
Exclusions string
Level string
showProfiling string
branchAnalysis bool
}
Plugin struct {
Config Config
@ -41,8 +43,12 @@ func (p Plugin) Exec() error {
"-Dsonar.log.level=" + p.Config.Level,
"-Dsonar.showProfiling=" + p.Config.showProfiling,
"-Dsonar.scm.provider=git",
}
if p.Config.branchAnalysis {
args = append(args, "-Dsonar.branch.name="+p.Config.Branch)
}
cmd := exec.Command("sonar-scanner", args...)
// fmt.Printf("==> Executing: %s\n", strings.Join(cmd.Args, " "))
output, err := cmd.CombinedOutput()