mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-06 14:37:36 +02:00
fix(actions): keep the caller's event and inputs in reusable workflow jobs (#39452)
Fixes https://github.com/go-gitea/gitea/issues/38705 Fixes https://gitea.com/gitea/runner/issues/1232 Jobs of a called workflow saw `gitea.event_name` as `workflow_call` and `gitea.event.inputs` replaced by the caller's `with:`, so a condition like `gitea.event_name == 'push'` never held in them, and a dispatched run's own inputs were lost there. They now keep the caller's trigger event and their `inputs` are the run's `workflow_dispatch` inputs overlaid with the caller's `with:`, as on GitHub. For example, with `workflow_dispatch` inputs `{target: prod, debug: true}` and caller's `with: {target: dev}`, the called workflow's `inputs` are `{target: dev, debug: true}`. A runner cannot resolve these inputs itself, so they are sent in a new `gitea_workflow_call` context entry, with the original event name and inputs for the runner to restore. For more details, see the runner PR: https://gitea.com/gitea/runner/pulls/1250 Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
1 parent
3c5d2d1b63
commit
0d09986790
7 files changed
+137
-54
No files matched your search
@@ -116,7 +116,7 @@ type ActionRunJob struct {
|
||||
// - JSON object : explicit mapping {alias: source_name}; names only, no values.
|
||||
// Only set when IsReusableCaller is true.
|
||||
CallSecrets string `xorm:"LONGTEXT"`
|
||||
// CallPayload is the JSON-encoded WorkflowCallPayload exposed to children as gitea.event.
|
||||
// CallPayload is the JSON-encoded WorkflowCallPayload.
|
||||
// Populated atomically with IsExpanded at the end of expandReusableWorkflowCaller.
|
||||
// Only set when IsReusableCaller is true.
|
||||
CallPayload string `xorm:"LONGTEXT"`
|
||||
|
||||
Reference in new issue
Block a user