From 9924aea78631d3e4e24a0eefb522e0aab1e7f4ab Mon Sep 17 00:00:00 2001 From: badhezi Date: Mon, 12 May 2025 17:17:50 +0000 Subject: [PATCH] Evaluate `run-name` field for workflows (#137) To support https://github.com/go-gitea/gitea/pull/34301 Reviewed-on: https://gitea.com/gitea/act/pulls/137 Reviewed-by: Lunny Xiao Co-authored-by: badhezi Co-committed-by: badhezi --- pkg/jobparser/jobparser.go | 6 ++++++ pkg/jobparser/model.go | 1 + 2 files changed, 7 insertions(+) diff --git a/pkg/jobparser/jobparser.go b/pkg/jobparser/jobparser.go index 0aadc18..5570ae4 100644 --- a/pkg/jobparser/jobparser.go +++ b/pkg/jobparser/jobparser.go @@ -8,6 +8,7 @@ import ( "gopkg.in/yaml.v3" + "github.com/nektos/act/pkg/exprparser" "github.com/nektos/act/pkg/model" ) @@ -40,6 +41,10 @@ func Parse(content []byte, options ...ParseOption) ([]*SingleWorkflow, error) { if err != nil { return nil, fmt.Errorf("invalid jobs: %w", err) } + + evaluator := NewExpressionEvaluator(exprparser.NewInterpeter(&exprparser.EvaluationEnvironment{Github: pc.gitContext, Vars: pc.vars}, exprparser.Config{})) + workflow.RunName = evaluator.Interpolate(workflow.RunName) + for i, id := range ids { job := jobs[i] matricxes, err := getMatrixes(origin.GetJob(id)) @@ -65,6 +70,7 @@ func Parse(content []byte, options ...ParseOption) ([]*SingleWorkflow, error) { Env: workflow.Env, Defaults: workflow.Defaults, RawPermissions: workflow.RawPermissions, + RunName: workflow.RunName, } if err := swf.SetJob(id, job); err != nil { return nil, fmt.Errorf("SetJob: %w", err) diff --git a/pkg/jobparser/model.go b/pkg/jobparser/model.go index aebe8ee..5418aa9 100644 --- a/pkg/jobparser/model.go +++ b/pkg/jobparser/model.go @@ -16,6 +16,7 @@ type SingleWorkflow struct { RawJobs yaml.Node `yaml:"jobs,omitempty"` Defaults Defaults `yaml:"defaults,omitempty"` RawPermissions yaml.Node `yaml:"permissions,omitempty"` + RunName string `yaml:"run-name,omitempty"` } func (w *SingleWorkflow) Job() (string, *Job) {