mirror of
https://github.com/hanzoai/act.git
synced 2026-10-30 18:48:56 +00:00
The forge needs to PARSE and EVALUATE workflows: model, exprparser, and the two small helper packages they use. It does not need to run them — that is the runner process, and a container runtime is 12000 of the 15754 lines in the upstream act subtree. So this is the 3619 lines that a forge actually calls, not a fork of the whole engine. gitea.com/gitea/runner was the last gitea.com dependency in hanzoai/git. Pins match upstream (actionlint v1.7.12 with go.yaml.in/yaml/v4 v4.0.0-rc.3 — the two are version-coupled and a free resolution of actionlint does not build) and go 1.26, which exprparser needs for reflect.Fields. Upstream MIT notices retained; ours added above them. All four packages green. Co-authored-by: Hanzo Dev <[email protected]>
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
// Copyright 2026 Hanzo AI, Inc. All rights reserved.
|
|
// Copyright 2022 The Gitea Authors. All rights reserved.
|
|
// Copyright 2021 The nektos/act Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package model
|
|
|
|
import "fmt"
|
|
|
|
type stepStatus int
|
|
|
|
const (
|
|
StepStatusSuccess stepStatus = iota
|
|
StepStatusFailure
|
|
StepStatusSkipped
|
|
)
|
|
|
|
var stepStatusStrings = [...]string{
|
|
"success",
|
|
"failure",
|
|
"skipped",
|
|
}
|
|
|
|
func (s stepStatus) MarshalText() ([]byte, error) {
|
|
return []byte(s.String()), nil
|
|
}
|
|
|
|
func (s *stepStatus) UnmarshalText(b []byte) error {
|
|
str := string(b)
|
|
for i, name := range stepStatusStrings {
|
|
if name == str {
|
|
*s = stepStatus(i)
|
|
return nil
|
|
}
|
|
}
|
|
return fmt.Errorf("invalid step status %q", str)
|
|
}
|
|
|
|
func (s stepStatus) String() string {
|
|
if int(s) >= len(stepStatusStrings) {
|
|
return ""
|
|
}
|
|
return stepStatusStrings[s]
|
|
}
|
|
|
|
type StepResult struct {
|
|
Outputs map[string]string `json:"outputs"`
|
|
Conclusion stepStatus `json:"conclusion"`
|
|
Outcome stepStatus `json:"outcome"`
|
|
}
|