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) {