b3299ecd30
* 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
406 lines
15 KiB
YAML
406 lines
15 KiB
YAML
|
|
name: "Test what expressions result in true and false on Github"
|
|
on: push
|
|
|
|
env:
|
|
SOMETHING_TRUE: true
|
|
SOMETHING_FALSE: false
|
|
SOME_TEXT: text
|
|
ACT: true
|
|
|
|
|
|
jobs:
|
|
test-ifs-and-buts:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
|
|
- name: "❌ I should not run, expr: failure()"
|
|
id: step0
|
|
if: failure()
|
|
run: echo "failure() should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: success()"
|
|
id: step1
|
|
if: success()
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: success()"
|
|
if: steps.step1.conclusion == 'skipped'
|
|
run: echo "success() should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: cancelled()"
|
|
id: step2
|
|
if: cancelled()
|
|
run: echo "cancelled() should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: always()"
|
|
id: step3
|
|
if: always()
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: always()"
|
|
if: steps.step3.conclusion == 'skipped'
|
|
run: echo "always() should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: true"
|
|
id: step4
|
|
if: true
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: true"
|
|
if: steps.step4.conclusion == 'skipped'
|
|
run: echo "true should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: false"
|
|
id: step5
|
|
if: false
|
|
run: echo "false should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: 1 != 0"
|
|
id: step8
|
|
if: 1 != 0
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: 1 != 0"
|
|
if: steps.step8.conclusion == 'skipped'
|
|
run: echo "1 != 0 should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: 1 != 1"
|
|
id: step9
|
|
if: 1 != 1
|
|
run: echo "1 != 1 should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: €{{ 1 != 0 }}"
|
|
id: step10
|
|
if: ${{ 1 != 0 }}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ 1 != 0 }}"
|
|
if: steps.step10.conclusion == 'skipped'
|
|
run: echo "${{ 1 != 0 }} should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: €{{ 1 != 1 }}"
|
|
id: step11
|
|
if: ${{ 1 != 1 }}
|
|
run: echo "${{ 1 != 1 }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: 1 == 0"
|
|
id: step12
|
|
if: 1 == 0
|
|
run: echo "1 == 0 should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: 1 == 1"
|
|
id: step13
|
|
if: 1 == 1
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: 1 == 1"
|
|
if: steps.step13.conclusion == 'skipped'
|
|
run: echo "1 == 1 should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: 1 > 2"
|
|
id: step14
|
|
if: 1 > 2
|
|
run: echo "1 > 2 should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: 1 < 2"
|
|
id: step15
|
|
if: 1 < 2
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: 1 < 2"
|
|
if: steps.step15.conclusion == 'skipped'
|
|
run: echo "1 < 2 should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: true && false"
|
|
id: step16
|
|
if: true && false
|
|
run: echo "true && false should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: true && 1 < 2"
|
|
id: step17
|
|
if: true && 1 < 2
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: true && 1 < 2"
|
|
if: steps.step17.conclusion == 'skipped'
|
|
run: echo "true && 1 < 2 should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: false || 1 < 2"
|
|
id: step18
|
|
if: false || 1 < 2
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: false || 1 < 2"
|
|
if: steps.step18.conclusion == 'skipped'
|
|
run: echo "false || 1 < 2 should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: false || false"
|
|
id: step19
|
|
if: false || false
|
|
run: echo "false || false should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: env.UNKNOWN == 'true'"
|
|
id: step20
|
|
if: env.UNKNOWN == 'true'
|
|
run: echo "env.UNKNOWN == 'true' should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: env.UNKNOWN"
|
|
id: step21
|
|
if: env.UNKNOWN
|
|
run: echo "env.UNKNOWN should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: env.SOME_TEXT"
|
|
id: step22
|
|
if: env.SOME_TEXT
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: env.SOME_TEXT"
|
|
if: steps.step22.conclusion == 'skipped'
|
|
run: echo "env.SOME_TEXT should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: env.SOME_TEXT == 'text'"
|
|
id: step23
|
|
if: env.SOME_TEXT == 'text'
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: env.SOME_TEXT == 'text'"
|
|
if: steps.step23.conclusion == 'skipped'
|
|
run: echo "env.SOME_TEXT == 'text' should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: env.SOMETHING_TRUE == 'true'"
|
|
id: step24
|
|
if: env.SOMETHING_TRUE == 'true'
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: env.SOMETHING_TRUE == 'true'"
|
|
if: steps.step24.conclusion == 'skipped'
|
|
run: echo "env.SOMETHING_TRUE == 'true' should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: env.SOMETHING_FALSE == 'true'"
|
|
id: step25
|
|
if: env.SOMETHING_FALSE == 'true'
|
|
run: echo "env.SOMETHING_FALSE == 'true' should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: env.SOMETHING_TRUE"
|
|
id: step26
|
|
if: env.SOMETHING_TRUE
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: env.SOMETHING_TRUE"
|
|
if: steps.step26.conclusion == 'skipped'
|
|
run: echo "env.SOMETHING_TRUE should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: env.SOMETHING_FALSE"
|
|
id: step27
|
|
if: env.SOMETHING_FALSE
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: env.SOMETHING_FALSE"
|
|
if: steps.step27.conclusion == 'skipped'
|
|
run: echo "env.SOMETHING_FALSE should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: €{{ !env.SOMETHING_TRUE }}"
|
|
id: step30
|
|
if: ${{ !env.SOMETHING_TRUE }}
|
|
run: echo "${{ !env.SOMETHING_TRUE }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: €{{ !env.SOMETHING_FALSE }}"
|
|
id: step31
|
|
if: ${{ !env.SOMETHING_FALSE }}
|
|
run: echo "${{ !env.SOMETHING_FALSE }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: €{{ ! env.SOMETHING_TRUE }}"
|
|
id: step32
|
|
if: ${{ ! env.SOMETHING_TRUE }}
|
|
run: echo "${{ ! env.SOMETHING_TRUE }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: €{{ ! env.SOMETHING_FALSE }}"
|
|
id: step33
|
|
if: ${{ ! env.SOMETHING_FALSE }}
|
|
run: echo "${{ ! env.SOMETHING_FALSE }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_TRUE }}"
|
|
id: step34
|
|
if: ${{ env.SOMETHING_TRUE }}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_TRUE }}"
|
|
if: steps.step34.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_TRUE }} should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_FALSE }}"
|
|
id: step35
|
|
if: ${{ env.SOMETHING_FALSE }}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_FALSE }}"
|
|
if: steps.step35.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_FALSE }} should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: €{{ !env.SOMETHING_TRUE }}"
|
|
id: step36
|
|
if: ${{ !env.SOMETHING_TRUE }}
|
|
run: echo "${{ !env.SOMETHING_TRUE }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: €{{ !env.SOMETHING_FALSE }}"
|
|
id: step37
|
|
if: ${{ !env.SOMETHING_FALSE }}
|
|
run: echo "${{ !env.SOMETHING_FALSE }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: €{{ !env.SOMETHING_TRUE && true }}"
|
|
id: step38
|
|
if: ${{ !env.SOMETHING_TRUE && true }}
|
|
run: echo "${{ !env.SOMETHING_TRUE && true }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: €{{ !env.SOMETHING_FALSE && true }}"
|
|
id: step39
|
|
if: ${{ !env.SOMETHING_FALSE && true }}
|
|
run: echo "${{ !env.SOMETHING_FALSE && true }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: €{{ !env.SOMETHING_TRUE || true }}"
|
|
id: step40
|
|
if: ${{ !env.SOMETHING_TRUE || true }}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ !env.SOMETHING_TRUE || true }}"
|
|
if: steps.step40.conclusion == 'skipped'
|
|
run: echo "${{ !env.SOMETHING_TRUE || true }} should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: €{{ !env.SOMETHING_FALSE || false }}"
|
|
id: step41
|
|
if: ${{ !env.SOMETHING_FALSE || false }}
|
|
run: echo "${{ !env.SOMETHING_FALSE || false }} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_TRUE && true }}"
|
|
id: step42
|
|
if: ${{ env.SOMETHING_TRUE && true }}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_TRUE && true }}"
|
|
if: steps.step42.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_TRUE && true }} should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_FALSE || true }}"
|
|
id: step43
|
|
if: ${{ env.SOMETHING_FALSE || true }}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_FALSE || true }}"
|
|
if: steps.step43.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_FALSE || true }} should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_FALSE || false }}"
|
|
id: step44
|
|
if: ${{ env.SOMETHING_FALSE || false }}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_FALSE || false }}"
|
|
if: steps.step44.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_FALSE || false }} should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_TRUE == 'true' }}"
|
|
id: step46
|
|
if: ${{ env.SOMETHING_TRUE == 'true'}}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_TRUE == 'true' }}"
|
|
if: steps.step46.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_TRUE == 'true'}} should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: €{{ env.SOMETHING_FALSE == 'true' }}"
|
|
id: step47
|
|
if: ${{ env.SOMETHING_FALSE == 'true'}}
|
|
run: echo "${{ env.SOMETHING_FALSE == 'true'}} should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_FALSE == 'false' }}"
|
|
id: step48
|
|
if: ${{ env.SOMETHING_FALSE == 'false'}}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_FALSE == 'false' }}"
|
|
if: steps.step48.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_FALSE == 'false'}} should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_FALSE }} && €{{ env.SOMETHING_TRUE }}"
|
|
id: step49
|
|
if: ${{ env.SOMETHING_FALSE }} && ${{ env.SOMETHING_TRUE }}
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_FALSE }} && €{{ env.SOMETHING_TRUE }}"
|
|
if: steps.step49.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_FALSE }} && ${{ env.SOMETHING_TRUE }} should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: false || env.SOMETHING_TRUE == 'true'"
|
|
id: step50
|
|
if: false || env.SOMETHING_TRUE == 'true'
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: false || env.SOMETHING_TRUE == 'true'"
|
|
if: steps.step50.conclusion == 'skipped'
|
|
run: echo "false || env.SOMETHING_TRUE == 'true' should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: true || env.SOMETHING_FALSE == 'true'"
|
|
id: step51
|
|
if: true || env.SOMETHING_FALSE == 'true'
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: true || env.SOMETHING_FALSE == 'true'"
|
|
if: steps.step51.conclusion == 'skipped'
|
|
run: echo "true || env.SOMETHING_FALSE == 'true' should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: true && env.SOMETHING_TRUE == 'true'"
|
|
id: step52
|
|
if: true && env.SOMETHING_TRUE == 'true'
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: true && env.SOMETHING_TRUE == 'true'"
|
|
if: steps.step52.conclusion == 'skipped'
|
|
run: echo "true && env.SOMETHING_TRUE == 'true' should have been true, but wasn't"
|
|
|
|
- name: "❌ I should not run, expr: false && env.SOMETHING_TRUE == 'true'"
|
|
id: step53
|
|
if: false && env.SOMETHING_TRUE == 'true'
|
|
run: echo "false && env.SOMETHING_TRUE == 'true' should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: env.SOMETHING_FALSE == 'true' && env.SOMETHING_TRUE == 'true'"
|
|
id: step54
|
|
if: env.SOMETHING_FALSE == 'true' && env.SOMETHING_TRUE == 'true'
|
|
run: echo "env.SOMETHING_FALSE == 'true' && env.SOMETHING_TRUE == 'true' should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "❌ I should not run, expr: env.SOMETHING_FALSE == 'true' && true"
|
|
id: step55
|
|
if: env.SOMETHING_FALSE == 'true' && true
|
|
run: echo "env.SOMETHING_FALSE == 'true' && true should be false, but was evaluated to true;" exit 1;
|
|
|
|
- name: "✅ I should run, expr: €{{ env.SOMETHING_FALSE == 'true' }} && true"
|
|
id: step56
|
|
if: ${{ env.SOMETHING_FALSE == 'true' }} && true
|
|
run: echo OK
|
|
|
|
- name: "Double checking expr: €{{ env.SOMETHING_FALSE == 'true' }} && true"
|
|
if: steps.step56.conclusion == 'skipped'
|
|
run: echo "${{ env.SOMETHING_FALSE == 'true' }} && true should have been true, but wasn't"
|
|
|
|
- name: "✅ I should run, expr: true && €{{ env.SOMETHING_FALSE == 'true' }}"
|
|
id: step57
|
|
if: true && ${{ env.SOMETHING_FALSE == 'true' }}
|
|
run: echo OK
|
|
|
|
- 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;
|