mirror of
https://gitea.com/gitea/act_runner.git
synced 2026-03-02 18:00:18 +00:00
57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
package exprparser
|
|
|
|
import "github.com/actions-oss/act-cli/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() (interface{}, error) {
|
|
return true, nil
|
|
}
|
|
|
|
func (impl *interperterImpl) jobSuccess() (interface{}, 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() (interface{}, error) {
|
|
return impl.env.Job.Status == "success", nil
|
|
}
|
|
|
|
func (impl *interperterImpl) jobFailure() (interface{}, 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() (interface{}, error) {
|
|
return impl.env.Job.Status == "failure", nil
|
|
}
|
|
|
|
func (impl *interperterImpl) cancelled() (interface{}, error) {
|
|
return impl.env.Job.Status == "cancelled", nil
|
|
}
|