add v3
This commit is contained in:
parent
16c053bacb
commit
55f3e2b3c6
9 changed files with 580 additions and 0 deletions
71
v3/main.go
Normal file
71
v3/main.go
Normal file
|
@ -0,0 +1,71 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
cfg, _ := LoadConfig("/app")
|
||||
|
||||
if len(cfg.Jobs) == 0 {
|
||||
log.Printf("[main] No jobs configured")
|
||||
return
|
||||
}
|
||||
if cfg.Jenkins.URL == "" {
|
||||
log.Printf("[main] No Jenkins URL configured")
|
||||
return
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
stats := &RemoveStats{}
|
||||
|
||||
for _, cache := range cfg.Gradle.Caches {
|
||||
err := Remove(ctx, cache, RemoveOptions{
|
||||
Workers: 4,
|
||||
Retries: 3,
|
||||
Stats: stats,
|
||||
Logger: log.Printf,
|
||||
Progress: func(current int64) { log.Printf("[main] Removed %d files", current) },
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("[main] Error removing cache %s: %s", cache, err)
|
||||
}
|
||||
log.Printf("Summary: Total=%d Success=%d Failed=%d", stats.Total, stats.Success, stats.Failed)
|
||||
}
|
||||
|
||||
var jenkinsSvc JenkinsService = NewJenkinsClient(&cfg.Jenkins)
|
||||
triggerJobs(jenkinsSvc, cfg)
|
||||
|
||||
}
|
||||
|
||||
func triggerJobs(js JenkinsService, cfg *Config) {
|
||||
for _, job := range cfg.Jobs {
|
||||
log.Printf("[main] Triggering build for job %s", job)
|
||||
build, err := js.FetchBuild(job)
|
||||
if err != nil {
|
||||
log.Printf("[main] Error fetching build for job %s: %s", job, err)
|
||||
return
|
||||
}
|
||||
|
||||
for i := 0; i < cfg.Retries; i++ {
|
||||
latestParams := ExtractBuildParams(build)
|
||||
merged := MergeParams(latestParams, cfg.Jenkins.DefaultParameters)
|
||||
|
||||
if err := js.TriggerBuild(build, StringMapToInterfaceMap(merged)); err != nil {
|
||||
log.Printf("[main] Error triggering build for job %s: %s", job, err)
|
||||
}
|
||||
|
||||
for _, special := range cfg.Jenkins.SpecialParameters {
|
||||
if IsSubset(latestParams, special) {
|
||||
log.Printf("[main] Skipping special parameters build (subset of latest) for %s: %+v", job, special)
|
||||
continue
|
||||
}
|
||||
log.Printf("[main] Triggering special parameters build for %s: %+v", job, special)
|
||||
if err := js.TriggerBuild(build, special); err != nil {
|
||||
log.Printf("[main] Error triggering special parameters build for job %s: %s", job, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue