Skip to content

Commit

Permalink
Fixes Issue nektos#597 (nektos#637)
Browse files Browse the repository at this point in the history
* feat:(Changed order of events, to prevent enviroment to run before if statement is run

* changed issue597 to issue-597

* Added test for linux/amd64
  • Loading branch information
Renstrom authored May 3, 2021
1 parent 780f60a commit 3db3d41
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 7 deletions.
20 changes: 13 additions & 7 deletions pkg/runner/run_context.go
Original file line number Diff line number Diff line change
Expand Up @@ -212,24 +212,30 @@ func (rc *RunContext) newStepExecutor(step *model.Step) common.Executor {
Success: true,
Outputs: make(map[string]string),
}

exprEval, err := sc.setupEnv(ctx)
if err != nil {
return err
}
rc.ExprEval = exprEval

runStep, err := rc.EvalBool(sc.Step.If)

if err != nil {
common.Logger(ctx).Errorf(" \u274C Error in if: expression - %s", sc.Step)
exprEval, err := sc.setupEnv(ctx)
if err != nil {
return err
}
rc.ExprEval = exprEval
rc.StepResults[rc.CurrentStep].Success = false
return err
}

if !runStep {
log.Debugf("Skipping step '%s' due to '%s'", sc.Step.String(), sc.Step.If)
return nil
}

exprEval, err := sc.setupEnv(ctx)
if err != nil {
return err
}
rc.ExprEval = exprEval

common.Logger(ctx).Infof("\u2B50 Run %s", sc.Step)
err = sc.Executor()(ctx)
if err == nil {
Expand Down
2 changes: 2 additions & 0 deletions pkg/runner/runner_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,13 @@ func TestRunEvent(t *testing.T) {
{"testdata", "workdir", "push", "", platforms, ""},
{"testdata", "defaults-run", "push", "", platforms, ""},
{"testdata", "uses-composite", "push", "", platforms, ""},
{"testdata", "issue-597", "push", "", platforms, ""},
// {"testdata", "powershell", "push", "", platforms, ""}, // Powershell is not available on default act test runner (yet) but preserving here for posterity
// {"testdata", "issue-228", "push", "", platforms, ""}, // TODO [igni]: Remove this once everything passes

// single test for different architecture: linux/arm64
{"testdata", "basic", "push", "", platforms, "linux/arm64"},

}
log.SetLevel(log.DebugLevel)

Expand Down
32 changes: 32 additions & 0 deletions pkg/runner/testdata/issue-597/spelling.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: issue-597
on: push


jobs:
my_first_job:

runs-on: ubuntu-latest
steps:
- name: My first false step
if: "endsWith('Should not', 'o1')"
uses: actions/[email protected]
with:
ref: refs/pull/${{github.event.pull_request.number}}/merge
fetch-depth: 5
- name: My first true step
if: ${{"endsWith('Hello world', 'ld')"}}
uses: actions/hello-world-javascript-action@main
with:
who-to-greet: "Renst the Octocat"
- name: My second false step
if: "endsWith('Should not evaluate', 'o2')"
uses: actions/[email protected]
with:
ref: refs/pull/${{github.event.pull_request.number}}/merge
fetch-depth: 5
- name: My third false step
if: ${{endsWith('Should not evaluate', 'o3')}}
uses: actions/[email protected]
with:
ref: refs/pull/${{github.event.pull_request.number}}/merge
fetch-depth: 5

0 comments on commit 3db3d41

Please sign in to comment.