fix #127 - force eval as a boolean (#131)

This commit is contained in:
Casey Lee 2020-03-06 11:30:39 -08:00 committed by GitHub
parent e33606361f
commit af970769d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 0 deletions

View File

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

View File

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

15
pkg/runner/testdata/issue-104/main.yaml vendored Normal file
View File

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