mirror of
https://code.forgejo.org/forgejo/runner.git
synced 2025-09-15 18:57:01 +00:00
Act env (#417)
* Test more if env variants * The correct negation syntax is != * Make the Interpolate function support negated booleans from envs * Move assert := a.New(t) into t.Run This uncovered that some of the test premisses was wrong and the Eval Bool function also had flaws * Remove a stray logrus import * Add an ACT env set to true This can be used to skip certain steps that you don't want to run locally when testing. E.g. steps that sends messages to Slack channels on successful builds etc. * Add a description about env.ACT to the readme * A new attempt at Interpolation and EvalBool * One small merge fix * Remove some fmt.Printfs * Fix some merge conflicts
This commit is contained in:
parent
1ae5c19aa4
commit
532500b3f5
3 changed files with 19 additions and 0 deletions
15
.github/workflows/test-if.yml
vendored
15
.github/workflows/test-if.yml
vendored
|
@ -6,6 +6,7 @@ env:
|
|||
SOMETHING_TRUE: true
|
||||
SOMETHING_FALSE: false
|
||||
SOME_TEXT: text
|
||||
ACT: true
|
||||
|
||||
|
||||
jobs:
|
||||
|
@ -389,3 +390,17 @@ jobs:
|
|||
- name: "Double checking expr: true && €{{ env.SOMETHING_FALSE == 'true' }}"
|
||||
if: steps.step57.conclusion == 'skipped'
|
||||
run: echo "true && ${{ env.SOMETHING_FALSE == 'true' }} should have been true, but wasn't"
|
||||
|
||||
- name: "✅ I should run, expr: €{{ env.ACT }}"
|
||||
id: step60
|
||||
if: ${{ env.ACT }}
|
||||
run: echo OK
|
||||
|
||||
- name: "Double checking expr: €{{ env.ACT }}"
|
||||
if: steps.step60.conclusion == 'skipped'
|
||||
run: echo "${{ env.ACT }} should have been true, but wasn't"
|
||||
|
||||
- name: "❌ I should not run, expr: €{{ !env.ACT }}"
|
||||
id: step61
|
||||
if: ${{ !env.ACT }}
|
||||
run: echo "${{ !env.ACT }} should be false, but was evaluated to true;" exit 1;
|
||||
|
|
|
@ -47,6 +47,7 @@ func (rc *RunContext) GetEnv() map[string]string {
|
|||
if rc.Env == nil {
|
||||
rc.Env = mergeMaps(rc.Config.Env, rc.Run.Workflow.Env, rc.Run.Job().Env)
|
||||
}
|
||||
rc.Env["ACT"] = "true"
|
||||
return rc.Env
|
||||
}
|
||||
|
||||
|
|
|
@ -126,6 +126,9 @@ func TestRunContext_EvalBool(t *testing.T) {
|
|||
// Check github context
|
||||
{in: "github.actor == 'nektos/act'", out: true},
|
||||
{in: "github.actor == 'unknown'", out: false},
|
||||
// The special ACT flag
|
||||
{in: "${{ env.ACT }}", out: true},
|
||||
{in: "${{ !env.ACT }}", out: false},
|
||||
}
|
||||
|
||||
updateTestIfWorkflow(t, tables, rc)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue