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:
parent
4229505f5d
commit
5ed5bc15b3
5 changed files with 76 additions and 1 deletions
|
@ -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()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue