package main import ( "context" "log" ) func main() { cfg, _ := LoadConfig("/app") if len(cfg.Jobs) == 0 { log.Printf("[main] No jobs 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) } jc := NewJenkinsClient(&cfg.Jenkins) for _, job := range cfg.Jobs { log.Printf("[main] Triggering build for job %s", job) build, err := jc.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++ { if err := jc.TriggerBuild(build); err != nil { log.Printf("[main] Error triggering build for job %s [%d]: %s", job, i, err) } } } }