// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "fmt" "os" "path/filepath" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) func buildDeb() { if argv.DryRun { return } log.DaemonMode(true) defer log.DaemonMode(false) all := me.forge.Repos.SortByFullPath() for all.Scan() { var cmd []string check := all.Next() if state[check] != "need to build" { // log.Info("skipping build for", check.GetGoPath(), state[check]) continue } outdir := getOutdir(check) os.MkdirAll(outdir, 0755) _, err := os.Stat(filepath.Join(outdir, debnames[check])) if err == nil { if debnames[check] == "" { log.Info("something went wrong. .deb blank", check.GetGoPath()) } // already built continue } if argv.Release { cmd = []string{"go-deb", "--release", "--auto", "--forge", check.GetGoPath(), "--dir", outdir} } else { cmd = []string{"go-deb", "--auto", "--no-gui", "--forge", check.GetGoPath(), "--dir", outdir} } if me.forge.Config.IsPrivate(check.GetGoPath()) { cmd = []string{"go-deb", "--auto", "--forge", check.GetGoPath(), "--dir", outdir} } log.Info("build cmd:", cmd) if r := check.RunRealtime(cmd); r.Error != nil { log.Info("go-deb failed error:", r.Error, check.GetGoPath()) failed[check] = fmt.Sprint("godeb failed", cmd, "with", r.Exit, r.Error) } else if r.Exit != 0 { log.Info("go-deb failed exit =", r.Exit, check.GetGoPath()) failed[check] = fmt.Sprint("godeb failed", cmd, "with", r.Exit, r.Error) } else { log.Info("build worked") } } } func getOutdir(repo *gitpb.Repo) string { if repo.GetLastTag() != repo.GetMasterVersion() { return "/home/jcarr/incoming-devel" } if repo.GetCurrentBranchVersion() != repo.GetMasterVersion() { return "/home/jcarr/incoming-devel" } if repo.CheckDirty() { return "/home/jcarr/incoming-devel" } if me.forge.Config.IsPrivate(repo.GetGoPath()) { return "/home/jcarr/incoming-private" } return "/home/jcarr/incoming" }