Files
act_runner/pkg/exprparser/functions.go
Christopher Homberger d187ac2fc1 auto adjust code
2026-02-22 20:58:46 +01:00

57 lines
1.3 KiB
Go

package exprparser
import "gitea.com/gitea/act_runner/pkg/model"
func (impl *interperterImpl) getNeedsTransitive(job *model.Job) []string {
needs := job.Needs()
for _, need := range needs {
parentNeeds := impl.getNeedsTransitive(impl.config.Run.Workflow.GetJob(need))
needs = append(needs, parentNeeds...)
}
return needs
}
func (impl *interperterImpl) always() (any, error) {
return true, nil
}
func (impl *interperterImpl) jobSuccess() (any, error) {
jobs := impl.config.Run.Workflow.Jobs
jobNeeds := impl.getNeedsTransitive(impl.config.Run.Job())
for _, needs := range jobNeeds {
if jobs[needs].Result != "success" {
return false, nil
}
}
return true, nil
}
func (impl *interperterImpl) stepSuccess() (any, error) {
return impl.env.Job.Status == "success", nil
}
func (impl *interperterImpl) jobFailure() (any, error) {
jobs := impl.config.Run.Workflow.Jobs
jobNeeds := impl.getNeedsTransitive(impl.config.Run.Job())
for _, needs := range jobNeeds {
if jobs[needs].Result == "failure" {
return true, nil
}
}
return false, nil
}
func (impl *interperterImpl) stepFailure() (any, error) {
return impl.env.Job.Status == "failure", nil
}
func (impl *interperterImpl) cancelled() (any, error) {
return impl.env.Job.Status == "cancelled", nil
}