Report error when `if` expression is invalid (#485)

Co-authored-by: Ed Tan <edtan@users.noreply.github.com>
Co-authored-by: Casey Lee <cplee@nektos.com>
This commit is contained in:
Ed 2021-01-18 14:44:27 -05:00 committed by GitHub
parent 9bbf35e88e
commit c7b3869b2f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 3 deletions

View File

@ -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

View File

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