Skip to content

Commit

Permalink
fix(worker): base dir + env variable (#6024)
Browse files Browse the repository at this point in the history
  • Loading branch information
sguiheux committed Nov 25, 2021
1 parent bbecfff commit 2da9361
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
10 changes: 6 additions & 4 deletions engine/worker/internal/run.go
Expand Up @@ -631,10 +631,6 @@ func (w *CurrentWorker) ProcessJob(jobInfo sdk.WorkflowNodeJobRunData) (res sdk.
if err := w.setupHooks(ctx, jobInfo, w.basedir, hdFile.Name()); err != nil {
return sdk.Result{Status: sdk.StatusFail, Reason: fmt.Sprintf("Error: unable to setup hooks: %v", err)}
}
log.Info(ctx, "Executing hooks setup from directory: %s", hdFile.Name())
if err := w.executeHooksSetup(ctx, w.basedir, hdFile.Name()); err != nil {
return sdk.Result{Status: sdk.StatusFail, Reason: fmt.Sprintf("Error: unable to setup hooks: %v", err)}
}

w.currentJob.context = ctx
w.currentJob.params = jobInfo.NodeJobRun.Parameters
Expand Down Expand Up @@ -665,6 +661,11 @@ func (w *CurrentWorker) ProcessJob(jobInfo sdk.WorkflowNodeJobRunData) (res sdk.
return sdk.Result{Status: sdk.StatusFail, Reason: fmt.Sprintf("unable to process job %s: %v", jobInfo.NodeJobRun.Job.Action.Name, err)}
}

log.Info(ctx, "Executing hooks setup from directory: %s", hdFile.Name())
if err := w.executeHooksSetup(ctx, w.basedir, hdFile.Name()); err != nil {
return sdk.Result{Status: sdk.StatusFail, Reason: fmt.Sprintf("Error: unable to setup hooks: %v", err)}
}

res = w.runJob(ctx, &jobInfo.NodeJobRun.Job.Action, jobInfo.NodeJobRun.ID, jobInfo.Secrets)

if len(res.NewVariables) > 0 {
Expand Down Expand Up @@ -797,6 +798,7 @@ func (w *CurrentWorker) executeHooksSetup(ctx context.Context, basedir afero.Fs,

str := fmt.Sprintf("source %s ; echo '<<<ENVIRONMENT>>>' ; env", filepath)
cmd := exec.Command("bash", "-c", str)
cmd.Env = w.Environ()
bs, err := cmd.CombinedOutput()
if err != nil {
return errors.WithStack(err)
Expand Down
11 changes: 10 additions & 1 deletion engine/worker/internal/types.go
Expand Up @@ -2,6 +2,7 @@ package internal

import (
"context"
"crypto/md5"
"encoding/json"
"fmt"
"os"
Expand Down Expand Up @@ -272,7 +273,15 @@ func (wk *CurrentWorker) Environ() []string {
newEnv = append(newEnv, "CDS_KEY=********") //We have to let it here for some legacy reason
newEnv = append(newEnv, fmt.Sprintf("%s=%d", WorkerServerPort, wk.HTTPPort()))
newEnv = append(newEnv, fmt.Sprintf("%s=%s", CDSApiUrl, wk.cfg.APIEndpoint))
newEnv = append(newEnv, "BASEDIR="+wk.cfg.Basedir)

if wk.currentJob.wJob != nil {
data := []byte(wk.currentJob.wJob.Job.Job.Action.Name)
suffix := fmt.Sprintf("%x", md5.Sum(data))
newEnv = append(newEnv, "BASEDIR="+wk.cfg.Basedir+"/"+suffix)
} else {
newEnv = append(newEnv, "BASEDIR="+wk.cfg.Basedir)
}

newEnv = append(newEnv, "HATCHERY_NAME="+wk.cfg.HatcheryName)
newEnv = append(newEnv, "HATCHERY_WORKER="+wk.cfg.Name)
if wk.cfg.Region != "" {
Expand Down

0 comments on commit 2da9361

Please sign in to comment.