From 1c7fd5355178585f6e74ed6d69e3ac0eb3b310b6 Mon Sep 17 00:00:00 2001 From: Adnan Maolood Date: Thu, 18 Aug 2022 06:41:33 -0400 Subject: [PATCH] worker: Run go fmt and go mod tidy --- api/go.sum | 2 -- worker/context.go | 38 +++++++++++++++++++------------------- worker/main.go | 4 ++-- worker/manifest.go | 2 +- worker/tasks.go | 24 ++++++++++-------------- worker/triggers.go | 46 +++++++++++++++++++++++----------------------- 6 files changed, 55 insertions(+), 61 deletions(-) diff --git a/api/go.sum b/api/go.sum index 7095c77..2ffc81c 100644 --- a/api/go.sum +++ b/api/go.sum @@ -31,8 +31,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -git.sr.ht/~sircmpwn/core-go v0.0.0-20220321082727-3f80f677f56d h1:0weIXd6ya99UAY0ZCOIKRIuFCarlxm3d8mI9thx4qHI= -git.sr.ht/~sircmpwn/core-go v0.0.0-20220321082727-3f80f677f56d/go.mod h1:uUqzeO5OLl/nRZfPk0igIAweRZiVwUmu/OGYfjS9fWc= git.sr.ht/~sircmpwn/core-go v0.0.0-20220530120843-d0bf1153ada4 h1:pyGHngvO7qIANeI5pmqzfVc+nLKSTTuwq2OA66nxEGw= git.sr.ht/~sircmpwn/core-go v0.0.0-20220530120843-d0bf1153ada4/go.mod h1:uUqzeO5OLl/nRZfPk0igIAweRZiVwUmu/OGYfjS9fWc= git.sr.ht/~sircmpwn/dowork v0.0.0-20210820133136-d3970e97def3 h1:9WCv5cK67s2SiY/R4DWT/OchEsFnfYDz3lbevKxZ4QI= diff --git a/worker/context.go b/worker/context.go index 0b7415c..bb8ce14 100644 --- a/worker/context.go +++ b/worker/context.go @@ -267,25 +267,25 @@ func (ctx *JobContext) Control( func (ctx *JobContext) SSH(args ...string) *exec.Cmd { sport := strconv.Itoa(ctx.Port) switch ctx.ImageConfig.LoginCmd { - case "drawterm": - return exec.CommandContext(ctx.Context, - "env", fmt.Sprintf("DIALSRV=%s", sport), - "PASS=password", "drawterm", - "-a", "none", - "-u", "glenda", - "-h", "127.0.0.1", - "-Gc", strings.Join(args, " ")) - case "ssh": - return exec.CommandContext(ctx.Context, "ssh", - append([]string{"-q", - "-p", sport, - "-o", "UserKnownHostsFile=/dev/null", - "-o", "StrictHostKeyChecking=no", - "-o", "LogLevel=quiet", - "build@localhost", - }, args...)...) - default: - panic(errors.New("Unknown login command")) + case "drawterm": + return exec.CommandContext(ctx.Context, + "env", fmt.Sprintf("DIALSRV=%s", sport), + "PASS=password", "drawterm", + "-a", "none", + "-u", "glenda", + "-h", "127.0.0.1", + "-Gc", strings.Join(args, " ")) + case "ssh": + return exec.CommandContext(ctx.Context, "ssh", + append([]string{"-q", + "-p", sport, + "-o", "UserKnownHostsFile=/dev/null", + "-o", "StrictHostKeyChecking=no", + "-o", "LogLevel=quiet", + "build@localhost", + }, args...)...) + default: + panic(errors.New("Unknown login command")) } } diff --git a/worker/main.go b/worker/main.go index e09fb16..e9b6f01 100644 --- a/worker/main.go +++ b/worker/main.go @@ -10,12 +10,12 @@ import ( "runtime" "sync" + "git.sr.ht/~sircmpwn/core-go/crypto" goredis "github.com/go-redis/redis/v8" "github.com/vaughan0/go-ini" - "git.sr.ht/~sircmpwn/core-go/crypto" - _ "github.com/lib/pq" celery "github.com/gocelery/gocelery" + _ "github.com/lib/pq" ) var ( diff --git a/worker/manifest.go b/worker/manifest.go index c22a4e0..0d821d9 100644 --- a/worker/manifest.go +++ b/worker/manifest.go @@ -36,7 +36,7 @@ func LoadImageConfig(image string) *ImageConfig { LoginCmd: "ssh", GitVariant: "git", Homedir: "/home/build", - Preamble: `#!/usr/bin/env bash + Preamble: `#!/usr/bin/env bash . ~/.buildenv set -xe diff --git a/worker/tasks.go b/worker/tasks.go index 59335fe..5d21a92 100644 --- a/worker/tasks.go +++ b/worker/tasks.go @@ -151,7 +151,7 @@ func (ctx *JobContext) SendTasks() error { break } taskpath := path.Join(taskdir, name) - script = ctx.ImageConfig.Preamble+script+"\n" + script = ctx.ImageConfig.Preamble + script + "\n" if err := ctx.Tee(taskpath, []byte(script)); err != nil { return err } @@ -399,7 +399,7 @@ func (ctx *JobContext) ConfigureRepos() error { } func (ctx *JobContext) CloneGitRepo(srcurl, repo_name, ref string) error { - git := ctx.SSH("GIT_SSH_COMMAND='ssh -o " + + git := ctx.SSH("GIT_SSH_COMMAND='ssh -o "+ "UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'", "git", "clone", srcurl, repo_name) git.Stdout = ctx.LogFile @@ -420,7 +420,7 @@ func (ctx *JobContext) CloneGitRepo(srcurl, repo_name, ref string) error { return errors.Wrap(err, "git checkout") } } - git = ctx.SSH("GIT_SSH_COMMAND='ssh -o " + + git = ctx.SSH("GIT_SSH_COMMAND='ssh -o "+ "UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'", "sh", "-euxc", fmt.Sprintf("'cd %s && git submodule update --init --recursive'", repo_name)) @@ -507,8 +507,8 @@ func (ctx *JobContext) CloneRepos() error { } case "hg": hg := ctx.SSH("hg", "clone", - "-e", "'ssh -o UserKnownHostsFile=/dev/null " + - "-o StrictHostKeyChecking=no'", srcurl, repo_name) + "-e", "'ssh -o UserKnownHostsFile=/dev/null "+ + "-o StrictHostKeyChecking=no'", srcurl, repo_name) hg.Stdout = ctx.LogFile hg.Stderr = ctx.LogFile if err := hg.Run(); err != nil { @@ -639,20 +639,16 @@ func (ctx *JobContext) UploadArtifacts() error { ) err := errors.New("Build artifacts were requested, but S3 " + "is not configured for this build runner.") - if upstream, ok = config.Get("objects", "s3-upstream"); - !ok || upstream == "" { + if upstream, ok = config.Get("objects", "s3-upstream"); !ok || upstream == "" { return err } - if accessKey, ok = config.Get("objects", "s3-access-key"); - !ok || accessKey == "" { + if accessKey, ok = config.Get("objects", "s3-access-key"); !ok || accessKey == "" { return err } - if secretKey, ok = config.Get("objects", "s3-secret-key"); - !ok || secretKey == "" { + if secretKey, ok = config.Get("objects", "s3-secret-key"); !ok || secretKey == "" { return err } - if bucket, ok = config.Get("builds.sr.ht::worker", "s3-bucket"); - !ok || bucket == "" { + if bucket, ok = config.Get("builds.sr.ht::worker", "s3-bucket"); !ok || bucket == "" { return err } if prefix, ok = config.Get("builds.sr.ht::worker", "s3-prefix"); !ok { @@ -676,7 +672,7 @@ func (ctx *JobContext) UploadArtifacts() error { } for _, src := range ctx.Manifest.Artifacts { ctx.Log.Printf("Uploading %s", src) - name := path.Join(prefix, "~" + ctx.Job.Username, + name := path.Join(prefix, "~"+ctx.Job.Username, strconv.Itoa(ctx.Job.Id), hex.EncodeToString(random), filepath.Base(src)) diff --git a/worker/triggers.go b/worker/triggers.go index 643ad81..b6be07a 100644 --- a/worker/triggers.go +++ b/worker/triggers.go @@ -18,12 +18,12 @@ import ( "time" "unicode/utf8" + "git.sr.ht/~sircmpwn/core-go/crypto" "github.com/martinlindhe/base36" + ms "github.com/mitchellh/mapstructure" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" - "git.sr.ht/~sircmpwn/core-go/crypto" gomail "gopkg.in/mail.v2" - ms "github.com/mitchellh/mapstructure" ) var ( @@ -64,10 +64,10 @@ type JobStatus struct { } type JobGroupStatus struct { - Id int `json:"id"` - Note *string `json:"note"` - Owner JobOwner `json:"owner"` - Jobs []JobStatus `json:"jobs"` + Id int `json:"id"` + Note *string `json:"note"` + Owner JobOwner `json:"owner"` + Jobs []JobStatus `json:"jobs"` } type EmailTrigger struct { @@ -98,8 +98,8 @@ func (ctx *JobContext) ProcessTriggers() { var trigger Trigger ms.Decode(def, &trigger) failures := map[string]interface{}{ - "failed": nil, - "timeout": nil, + "failed": nil, + "timeout": nil, "cancelled": nil, } process := trigger.Condition == "always" @@ -211,7 +211,7 @@ func (ctx *JobContext) processEmail(def map[string]interface{}) { Tasks string } tmpl, err := template.New("email").Parse( -`{{if .Job.Tags}}{{.Job.Tags}}{{else}}Job{{end}} #{{.Job.Id}}: {{.Status}} in {{.Duration}} + `{{if .Job.Tags}}{{.Job.Tags}}{{else}}Job{{end}} #{{.Job.Id}}: {{.Status}} in {{.Duration}} {{if .Job.Note}}{{.Job.Note}} @@ -253,9 +253,9 @@ func (ctx *JobContext) processWebhook(def map[string]interface{}) { *ctx.Job.Runner, ctx.Job.Id), Note: ctx.Job.Note, Runner: ctx.Job.Runner, - Owner: JobOwner { + Owner: JobOwner{ CName: "~" + ctx.Job.Username, - Name: ctx.Job.Username, + Name: ctx.Job.Username, }, } @@ -270,7 +270,7 @@ func (ctx *JobContext) processWebhook(def map[string]interface{}) { return } task := TaskStatus{ - Name: name, + Name: name, Status: taskStatus, Log: fmt.Sprintf("http://%s/logs/%d/%s/log", *ctx.Job.Runner, ctx.Job.Id, name), @@ -293,7 +293,7 @@ func (ctx *JobContext) processWebhook(def map[string]interface{}) { nonce, sig := crypto.SignWebhook(data) ctx.Log.Println("Sending webhook...") - client := &http.Client{Timeout: time.Second*10} + client := &http.Client{Timeout: time.Second * 10} req, err := http.NewRequest("POST", trigger.Url, bytes.NewReader(data)) req.Header.Add("X-Payload-Nonce", nonce) req.Header.Add("X-Payload-Signature", sig) @@ -362,8 +362,8 @@ func (ctx *JobContext) processJobGroupTriggers(groupId int) { return } failures := map[string]interface{}{ - "failed": nil, - "timeout": nil, + "failed": nil, + "timeout": nil, "cancelled": nil, } process := trigger.Condition == "always" @@ -374,7 +374,7 @@ func (ctx *JobContext) processJobGroupTriggers(groupId int) { process = process || trigger.Condition == "success" } triggers := map[string]func(*JobGroup, string, map[string]interface{}){ - "email": ctx.processGroupEmail, + "email": ctx.processGroupEmail, //"webhook": ctx.processGroupWebhook, TODO } if process { @@ -487,14 +487,14 @@ func (ctx *JobContext) processGroupEmail(group *JobGroup, status string, origin := ctx.Conf("builds.sr.ht", "origin") url := fmt.Sprintf("%s/~%s/job/%d", origin, job.Username, job.Id) if job.Tags != nil { - jobsBuf.WriteString(fmt.Sprintf("%c #%d %-" + - strconv.FormatInt(int64(maxStatus), 10) + "s %-" + - strconv.FormatInt(int64(maxTags), 10) + "s %s\n", + jobsBuf.WriteString(fmt.Sprintf("%c #%d %-"+ + strconv.FormatInt(int64(maxStatus), 10)+"s %-"+ + strconv.FormatInt(int64(maxTags), 10)+"s %s\n", statusChar, job.Id, strings.ToUpper(job.Status), *job.Tags, url)) } else { - jobsBuf.WriteString(fmt.Sprintf("%c #%d %-" + - strconv.FormatInt(int64(maxStatus), 10) + "s %-" + - strconv.FormatInt(int64(maxTags), 10) + "s %s\n", + jobsBuf.WriteString(fmt.Sprintf("%c #%d %-"+ + strconv.FormatInt(int64(maxStatus), 10)+"s %-"+ + strconv.FormatInt(int64(maxTags), 10)+"s %s\n", statusChar, job.Id, strings.ToUpper(job.Status), job.Image, url)) } } @@ -508,7 +508,7 @@ func (ctx *JobContext) processGroupEmail(group *JobGroup, status string, } // TODO: Use job group tags here tmpl, err := template.New("group-email").Parse( -`{{if .Tag}}{{.Tag}}{{else}}Job group{{end}}: {{.Status}} in {{.Duration}} + `{{if .Tag}}{{.Tag}}{{else}}Job group{{end}}: {{.Status}} in {{.Duration}} {{if .Group.Note}}{{.Group.Note}}{{end}} -- 2.38.5