From af970769d740d311d0fcd802b1f1fa617ca7a3cc Mon Sep 17 00:00:00 2001 From: Casey Lee Date: Fri, 6 Mar 2020 11:30:39 -0800 Subject: [PATCH] fix #127 - force eval as a boolean (#131) --- pkg/runner/run_context.go | 3 +++ pkg/runner/testdata/commands/push.yml | 7 +++++++ pkg/runner/testdata/issue-104/main.yaml | 15 +++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 pkg/runner/testdata/issue-104/main.yaml diff --git a/pkg/runner/run_context.go b/pkg/runner/run_context.go index 21c0eba..a826fad 100644 --- a/pkg/runner/run_context.go +++ b/pkg/runner/run_context.go @@ -231,11 +231,14 @@ func (rc *RunContext) isEnabled(ctx context.Context) bool { // EvalBool evaluates an expression against current run context func (rc *RunContext) EvalBool(expr string) bool { if expr != "" { + //v, err := rc.ExprEval.Evaluate(fmt.Sprintf("if (%s) { true } else { false }", expr)) + expr := fmt.Sprintf("Boolean(%s)", expr) v, err := rc.ExprEval.Evaluate(expr) if err != nil { log.Errorf("Error evaluating expression '%s' - %v", expr, err) return false } + log.Debugf("expression '%s' evaluated to '%s'", expr, v) return v == "true" } return true diff --git a/pkg/runner/testdata/commands/push.yml b/pkg/runner/testdata/commands/push.yml index af30675..84d990f 100644 --- a/pkg/runner/testdata/commands/push.yml +++ b/pkg/runner/testdata/commands/push.yml @@ -11,11 +11,18 @@ jobs: run: echo $foo | grep bar - name: TEST set-output + id: set_output run: echo "::set-output name=zoo::zar" #- run: echo "::add-path::/zip" #- run: echo $PATH | grep /zip + - name: TEST conditional + if: steps.set_output.outputs.zoo + run: echo "::set-env name=cond_env::foo" + - name: TEST conditional (cont.) + run: echo $cond_env | grep foo + - name: TEST debug, warning, error run: | echo "::debug file=app.js,line=100,col=20::Hello debug!" diff --git a/pkg/runner/testdata/issue-104/main.yaml b/pkg/runner/testdata/issue-104/main.yaml new file mode 100644 index 0000000..4ab3ef5 --- /dev/null +++ b/pkg/runner/testdata/issue-104/main.yaml @@ -0,0 +1,15 @@ +name: Test stuff + +on: + - push + +jobs: + build: + name: Testing Testing + runs-on: ubuntu-latest + steps: + + - name: hello + uses: actions/hello-world-docker-action@master + with: + who-to-greet: "World"