1
0
Fork 0
mirror of https://code.forgejo.org/forgejo/runner.git synced 2025-08-11 17:50:58 +00:00

Add needs job output (#629)

* Add outputs field to job model

* Add output interpolation for jobs

* Add otto config reference for interpolated job output values into 'needs' context

* Add output interpolation call after job has completed.

* gofmt

* Remove whitespace

* goimports

Co-authored-by: Casey Lee <cplee@nektos.com>
This commit is contained in:
Phil Story 2021-07-01 09:20:20 -06:00 committed by GitHub
parent 4229505f5d
commit 5ed5bc15b3
5 changed files with 76 additions and 1 deletions

View file

@ -229,6 +229,7 @@ func (rc *RunContext) newVM() *otto.Otto {
rc.vmStrategy(),
rc.vmMatrix(),
rc.vmEnv(),
rc.vmNeeds(),
}
vm := otto.New()
for _, configer := range configers {
@ -415,6 +416,23 @@ func (sc *StepContext) vmInputs() func(*otto.Otto) {
}
}
func (rc *RunContext) vmNeeds() func(*otto.Otto) {
jobs := rc.Run.Workflow.Jobs
jobNeeds := rc.Run.Job().Needs()
using := make(map[string]map[string]map[string]string)
for _, needs := range jobNeeds {
using[needs] = map[string]map[string]string{
"outputs": jobs[needs].Outputs,
}
}
return func(vm *otto.Otto) {
log.Debugf("context needs => %v", using)
_ = vm.Set("needs", using)
}
}
func (rc *RunContext) vmJob() func(*otto.Otto) {
job := rc.getJobContext()