diff --git a/pkg/runner/run_context.go b/pkg/runner/run_context.go index 21c0eba5..a826fad5 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 af306759..84d990f6 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 00000000..4ab3ef55 --- /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"