diff --git a/pkg/runner/run_context.go b/pkg/runner/run_context.go index f0cd0c5..43ec4d5 100644 --- a/pkg/runner/run_context.go +++ b/pkg/runner/run_context.go @@ -314,7 +314,7 @@ func (rc *RunContext) EvalBool(expr string) (bool, error) { joined := strings.Join(evaluatedParts, " ") v, _, err := rc.ExprEval.Evaluate(fmt.Sprintf("Boolean(%s)", joined)) if err != nil { - return false, nil + return false, err } log.Debugf("expression '%s' evaluated to '%s'", expr, v) return v == "true", nil diff --git a/pkg/runner/run_context_test.go b/pkg/runner/run_context_test.go index fd9de7e..01dab5e 100644 --- a/pkg/runner/run_context_test.go +++ b/pkg/runner/run_context_test.go @@ -2,13 +2,14 @@ package runner import ( "fmt" - "github.com/nektos/act/pkg/model" - a "github.com/stretchr/testify/assert" "os" "regexp" "strings" "testing" + "github.com/nektos/act/pkg/model" + a "github.com/stretchr/testify/assert" + "github.com/sirupsen/logrus/hooks/test" ) @@ -129,6 +130,8 @@ func TestRunContext_EvalBool(t *testing.T) { // The special ACT flag {in: "${{ env.ACT }}", out: true}, {in: "${{ !env.ACT }}", out: false}, + // Invalid expressions should be reported + {in: "INVALID_EXPRESSION", wantErr: true}, } updateTestIfWorkflow(t, tables, rc)