From e8b11be0d966ea03f3edfb15741b24f5ada4759d Mon Sep 17 00:00:00 2001 From: milan-trayt Date: Thu, 20 Nov 2025 14:56:55 +0545 Subject: [PATCH 1/2] fix: update failing lints --- .github/workflows/test-expressions.yml | 110 +++++++ .github/workflows/test-if.yml | 412 +++++++++++++++++++++++++ cmd/actions.go | 56 ++-- 3 files changed, 552 insertions(+), 26 deletions(-) create mode 100644 .github/workflows/test-expressions.yml create mode 100644 .github/workflows/test-if.yml diff --git a/.github/workflows/test-expressions.yml b/.github/workflows/test-expressions.yml new file mode 100644 index 0000000..059ac2b --- /dev/null +++ b/.github/workflows/test-expressions.yml @@ -0,0 +1,110 @@ +name: 'Test how expressions are handled on GitHub' +on: push + +env: + ACT: true + KEY-WITH-HYPHENS: value-with-hyphens + KEYWITHNOTHING: valuewithnothing + KEY_WITH_UNDERSCORES: value_with_underscores + SOMETHING_FALSE: false + SOMETHING_TRUE: true + +jobs: + test-espressions: + runs-on: ubuntu-latest + steps: + - name: text -> text should be equal to text + run: echo "Done " + + - name: $text -> $text should be equal to $text + run: echo "Done " + + - name: ${text} -> ${text} should be equal to ${text} + run: echo "Done " + + - name: €{{ 1 }} to €{{ 2 }} -> ${{ 1 }} to ${{2}} should be equal to 1 to 2 + run: echo "Done " + + - name: €{{ (true || false) }} to €{{ 2 }} -> ${{ (true || false) }} to ${{2}} should be equal to true to 2 + run: echo "Done " + + - name: €{{ (false || ' }}' ) }} to €{{ 2 }} -> ${{ (false || '}}' ) }} to ${{2}} should be equal to }} to 2 + run: echo "Done " + + - name: €{{ env.KEYWITHNOTHING }} -> ${{ env.KEYWITHNOTHING }} should be equal to valuewithnothing + run: echo "Done " + + - name: €{{ env.KEY-WITH-HYPHENS }} -> ${{ env.KEY-WITH-HYPHENS }} should be equal to value-with-hyphens + run: echo "Done " + + - name: €{{ env.KEY_WITH_UNDERSCORES }} -> ${{ env.KEY_WITH_UNDERSCORES }} should be equal to value_with_underscores + run: echo "Done " + + - name: €{{ secrets.CASE_INSENSITIVE_SECRET }} -> ${{ secrets.CASE_INSENSITIVE_SECRET }} should be equal to value + run: echo "Done " + + - name: €{{ secrets.case_insensitive_secret }} -> ${{ secrets.case_insensitive_secret }} should be equal to value + run: echo "Done " + + - name: €{{ vars.CASE_INSENSITIVE_VAR }} -> ${{ vars.CASE_INSENSITIVE_VAR }} should be equal to value + run: echo "Done " + + - name: €{{ vars.case_insensitive_var }} -> ${{ vars.case_insensitive_var }} should be equal to value + run: echo "Done " + + - name: €{{ env.UNKNOWN }} -> ${{ env.UNKNOWN }} should be equal to + run: echo "Done " + + - name: €{{ env.SOMETHING_TRUE }} -> ${{ env.SOMETHING_TRUE }} should be equal to true + run: echo "Done " + + - name: €{{ env.SOMETHING_FALSE }} -> ${{ env.SOMETHING_FALSE }} should be equal to false + run: echo "Done " + + - name: €{{ !env.SOMETHING_TRUE }} -> ${{ !env.SOMETHING_TRUE }} should be equal to false + run: echo "Done " + + - name: €{{ !env.SOMETHING_FALSE }} -> ${{ !env.SOMETHING_FALSE }} should be equal to false + run: echo "Done " + + - name: €{{ !env.SOMETHING_TRUE && true }} -> ${{ !env.SOMETHING_TRUE && true }} should be equal to false + run: echo "Done " + + - name: €{{ !env.SOMETHING_FALSE && true }} -> ${{ !env.SOMETHING_FALSE && true }} should be equal to false + run: echo "Done " + + - name: €{{ env.SOMETHING_TRUE && true }} -> ${{ env.SOMETHING_TRUE && true }} should be equal to true + run: echo "Done " + + - name: €{{ env.SOMETHING_FALSE && true }} -> ${{ env.SOMETHING_FALSE && true }} should be equal to true + run: echo "Done " + + - name: €{{ !env.SOMETHING_TRUE || true }} -> ${{ !env.SOMETHING_TRUE || true }} should be equal to true + run: echo "Done " + + - name: €{{ !env.SOMETHING_FALSE || true }} -> ${{ !env.SOMETHING_FALSE || true }} should be equal to true + run: echo "Done " + + - name: €{{ !env.SOMETHING_TRUE && false }} -> ${{ !env.SOMETHING_TRUE && false }} should be equal to false + run: echo "Done " + + - name: €{{ !env.SOMETHING_FALSE && false }} -> ${{ !env.SOMETHING_FALSE && false }} should be equal to false + run: echo "Done " + + - name: €{{ !env.SOMETHING_TRUE || false }} -> ${{ !env.SOMETHING_TRUE || false }} should be equal to false + run: echo "Done " + + - name: €{{ !env.SOMETHING_FALSE || false }} -> ${{ !env.SOMETHING_FALSE || false }} should be equal to false + run: echo "Done " + + - name: €{{ env.SOMETHING_TRUE || false }} -> ${{ env.SOMETHING_TRUE || false }} should be equal to true + run: echo "Done " + + - name: €{{ env.SOMETHING_FALSE || false }} -> ${{ env.SOMETHING_FALSE || false }} should be equal to false + run: echo "Done " + + - name: €{{ env.SOMETHING_FALSE }} && €{{ env.SOMETHING_TRUE }} -> ${{ env.SOMETHING_FALSE }} && ${{ env.SOMETHING_TRUE }} should be equal to false && true + run: echo "Done " + + - name: €{{ fromJSON('{}') < 2 }} -> ${{ fromJSON('{}') < 2 }} should be equal to false + run: echo "Done " diff --git a/.github/workflows/test-if.yml b/.github/workflows/test-if.yml new file mode 100644 index 0000000..9dde6f9 --- /dev/null +++ b/.github/workflows/test-if.yml @@ -0,0 +1,412 @@ +name: 'Test what expressions result in true and false on GitHub' +on: push + +env: + ACT: true + SOMETHING_FALSE: false + SOMETHING_TRUE: true + SOME_TEXT: text + +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: step6 + if: 1 != 0 + run: echo OK + + - name: 'Double checking expr: 1 != 0' + if: steps.step6.conclusion == 'skipped' + run: echo "1 != 0 should have been true, but wasn't" + + - name: '❌ I should not run, expr: 1 != 1' + id: step7 + 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: 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 not run, expr: 1 == 0' + id: step10 + 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: step11 + if: 1 == 1 + run: echo OK + + - name: 'Double checking expr: 1 == 1' + if: steps.step11.conclusion == 'skipped' + run: echo "1 == 1 should have been true, but wasn't" + + - name: '❌ I should not run, expr: 1 > 2' + id: step12 + 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: step13 + if: 1 < 2 + run: echo OK + + - name: 'Double checking expr: 1 < 2' + if: steps.step13.conclusion == 'skipped' + run: echo "1 < 2 should have been true, but wasn't" + + - name: '❌ I should not run, expr: true && false' + id: step14 + 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: step15 + if: true && 1 < 2 + run: echo OK + + - name: 'Double checking expr: true && 1 < 2' + if: steps.step15.conclusion == 'skipped' + run: echo "true && 1 < 2 should have been true, but wasn't" + + - name: '✅ I should run, expr: false || 1 < 2' + id: step16 + if: false || 1 < 2 + run: echo OK + + - name: 'Double checking expr: false || 1 < 2' + if: steps.step16.conclusion == 'skipped' + run: echo "false || 1 < 2 should have been true, but wasn't" + + - name: '❌ I should not run, expr: false || false' + id: step17 + 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: step18 + 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: step19 + 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: step20 + if: env.SOME_TEXT + run: echo OK + + - name: 'Double checking expr: env.SOME_TEXT' + if: steps.step20.conclusion == 'skipped' + run: echo "env.SOME_TEXT should have been true, but wasn't" + + - name: "✅ I should run, expr: env.SOME_TEXT == 'text'" + id: step21 + if: env.SOME_TEXT == 'text' + run: echo OK + + - name: "Double checking expr: env.SOME_TEXT == 'text'" + if: steps.step21.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: step22 + if: env.SOMETHING_TRUE == 'true' + run: echo OK + + - name: "Double checking expr: env.SOMETHING_TRUE == 'true'" + if: steps.step22.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: step23 + 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: step24 + if: env.SOMETHING_TRUE + run: echo OK + + - name: 'Double checking expr: env.SOMETHING_TRUE' + if: steps.step24.conclusion == 'skipped' + run: echo "env.SOMETHING_TRUE should have been true, but wasn't" + + - name: '✅ I should run, expr: env.SOMETHING_FALSE' + id: step25 + if: env.SOMETHING_FALSE + run: echo OK + + - name: 'Double checking expr: env.SOMETHING_FALSE' + if: steps.step25.conclusion == 'skipped' + run: echo "env.SOMETHING_FALSE should have been true, but wasn't" + + - name: '❌ I should not run, expr: €{{ !env.SOMETHING_TRUE }}' + id: step26 + 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: step27 + 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: step28 + 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: step29 + 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: step30 + if: ${{ env.SOMETHING_TRUE }} + run: echo OK + + - name: 'Double checking expr: €{{ env.SOMETHING_TRUE }}' + if: steps.step30.conclusion == 'skipped' + run: echo "${{ env.SOMETHING_TRUE }} should have been true, but wasn't" + + - name: '✅ I should run, expr: €{{ env.SOMETHING_FALSE }}' + id: step31 + if: ${{ env.SOMETHING_FALSE }} + run: echo OK + + - name: 'Double checking expr: €{{ env.SOMETHING_FALSE }}' + if: steps.step31.conclusion == 'skipped' + run: echo "${{ env.SOMETHING_FALSE }} should have been true, but wasn't" + + - 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 not run, expr: €{{ !env.SOMETHING_TRUE && true }}' + id: step34 + 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: step35 + 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: step36 + if: ${{ !env.SOMETHING_TRUE || true }} + run: echo OK + + - name: 'Double checking expr: €{{ !env.SOMETHING_TRUE || true }}' + if: steps.step36.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: step37 + 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: step38 + if: ${{ env.SOMETHING_TRUE && true }} + run: echo OK + + - name: 'Double checking expr: €{{ env.SOMETHING_TRUE && true }}' + if: steps.step38.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: step39 + if: ${{ env.SOMETHING_FALSE || true }} + run: echo OK + + - name: 'Double checking expr: €{{ env.SOMETHING_FALSE || true }}' + if: steps.step39.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: step40 + if: ${{ env.SOMETHING_FALSE || false }} + run: echo OK + + - name: 'Double checking expr: €{{ env.SOMETHING_FALSE || false }}' + if: steps.step40.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: step41 + if: ${{ env.SOMETHING_TRUE == 'true'}} + run: echo OK + + - name: "Double checking expr: €{{ env.SOMETHING_TRUE == 'true' }}" + if: steps.step41.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: step42 + 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: step43 + if: ${{ env.SOMETHING_FALSE == 'false'}} + run: echo OK + + - name: "Double checking expr: €{{ env.SOMETHING_FALSE == 'false' }}" + if: steps.step43.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: step44 + if: ${{ env.SOMETHING_FALSE }} && ${{ env.SOMETHING_TRUE }} + run: echo OK + + - name: 'Double checking expr: €{{ env.SOMETHING_FALSE }} && €{{ env.SOMETHING_TRUE }}' + if: steps.step44.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: step45 + if: false || env.SOMETHING_TRUE == 'true' + run: echo OK + + - name: "Double checking expr: false || env.SOMETHING_TRUE == 'true'" + if: steps.step45.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: step46 + if: true || env.SOMETHING_FALSE == 'true' + run: echo OK + + - name: "Double checking expr: true || env.SOMETHING_FALSE == 'true'" + if: steps.step46.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: step47 + if: true && env.SOMETHING_TRUE == 'true' + run: echo OK + + - name: "Double checking expr: true && env.SOMETHING_TRUE == 'true'" + if: steps.step47.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: step48 + 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: step49 + 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: step50 + 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: step51 + if: ${{ env.SOMETHING_FALSE == 'true' }} && true + run: echo OK + + - name: "Double checking expr: €{{ env.SOMETHING_FALSE == 'true' }} && true" + if: steps.step51.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: step52 + if: true && ${{ env.SOMETHING_FALSE == 'true' }} + run: echo OK + + - name: "Double checking expr: true && €{{ env.SOMETHING_FALSE == 'true' }}" + if: steps.step52.conclusion == 'skipped' + run: echo "true && ${{ env.SOMETHING_FALSE == 'true' }} should have been true, but wasn't" + + - name: "✅ I should run, expr: github.job == 'job1'" + id: step55 + if: github.job == 'job1' + run: echo OK + + - name: "Double checking expr: github.job == 'job1'" + if: steps.step55.conclusion == 'skipped' + run: echo "github.job == 'job1' should have been true, but wasn't" + + - name: '✅ I should run, expr: €{{ env.ACT }}' + id: step56 + if: ${{ env.ACT }} + run: echo OK + + - name: 'Double checking expr: €{{ env.ACT }}' + if: steps.step56.conclusion == 'skipped' + run: echo "${{ env.ACT }} should have been true, but wasn't" + + - name: '❌ I should not run, expr: €{{ !env.ACT }}' + id: step57 + if: ${{ !env.ACT }} + run: echo "${{ !env.ACT }} should be false, but was evaluated to true;" exit 1; diff --git a/cmd/actions.go b/cmd/actions.go index fe9e715..301d1e2 100644 --- a/cmd/actions.go +++ b/cmd/actions.go @@ -932,39 +932,43 @@ func runWatchRuns(cmd *cobra.Command, args []string) error { return err } runs, err = client.GetWorkflowRuns(ctx, owner, repo, workflowID) + if err != nil { + fmt.Printf("Error fetching runs: %v\n", err) + continue + } } else { // Watch all runs runs, err = client.GetAllWorkflowRuns(ctx, owner, repo) + if err != nil { + fmt.Printf("Error fetching runs: %v\n", err) + continue + } } - if err != nil { - fmt.Printf("Error fetching runs: %v\n", err) - } else { - // Clear screen and show current time - fmt.Printf("\033[2J\033[H") - fmt.Printf(" Last updated: %s\n\n", time.Now().Format("2006-01-02 15:04:05")) - - // Show only recent runs (limit to 10) - limit := 10 - if len(runs) > limit { - runs = runs[:limit] - } + // Clear screen and show current time + fmt.Printf("\033[2J\033[H") + fmt.Printf(" Last updated: %s\n\n", time.Now().Format("2006-01-02 15:04:05")) - w := tabwriter.NewWriter(cmd.OutOrStdout(), 0, 0, 2, ' ', 0) - fmt.Fprintf(w, "RUN ID\tWORKFLOW\tSTATUS\tBRANCH\tCREATED\n") - - for _, run := range runs { - statusIcon := getStatusIcon(run.Status, run.Conclusion) - fmt.Fprintf(w, "%d\t%s\t%s %s\t%s\t%s\n", - run.ID, - run.Name, - statusIcon, - run.Status, - run.HeadBranch, - formatTimeAgo(run.CreatedAt)) - } - w.Flush() + // Show only recent runs (limit to 10) + limit := 10 + if len(runs) > limit { + runs = runs[:limit] + } + + w := tabwriter.NewWriter(cmd.OutOrStdout(), 0, 0, 2, ' ', 0) + fmt.Fprintf(w, "RUN ID\tWORKFLOW\tSTATUS\tBRANCH\tCREATED\n") + + for _, run := range runs { + statusIcon := getStatusIcon(run.Status, run.Conclusion) + fmt.Fprintf(w, "%d\t%s\t%s %s\t%s\t%s\n", + run.ID, + run.Name, + statusIcon, + run.Status, + run.HeadBranch, + formatTimeAgo(run.CreatedAt)) } + w.Flush() time.Sleep(time.Duration(interval) * time.Second) } From 67176b1191014db532722b05e4eb97708c48543a Mon Sep 17 00:00:00 2001 From: milan-trayt Date: Thu, 20 Nov 2025 14:59:32 +0545 Subject: [PATCH 2/2] fix: update failing lints --- .github/workflows/test-expressions.yml | 110 ------- .github/workflows/test-if.yml | 412 ------------------------- 2 files changed, 522 deletions(-) delete mode 100644 .github/workflows/test-expressions.yml delete mode 100644 .github/workflows/test-if.yml diff --git a/.github/workflows/test-expressions.yml b/.github/workflows/test-expressions.yml deleted file mode 100644 index 059ac2b..0000000 --- a/.github/workflows/test-expressions.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: 'Test how expressions are handled on GitHub' -on: push - -env: - ACT: true - KEY-WITH-HYPHENS: value-with-hyphens - KEYWITHNOTHING: valuewithnothing - KEY_WITH_UNDERSCORES: value_with_underscores - SOMETHING_FALSE: false - SOMETHING_TRUE: true - -jobs: - test-espressions: - runs-on: ubuntu-latest - steps: - - name: text -> text should be equal to text - run: echo "Done " - - - name: $text -> $text should be equal to $text - run: echo "Done " - - - name: ${text} -> ${text} should be equal to ${text} - run: echo "Done " - - - name: €{{ 1 }} to €{{ 2 }} -> ${{ 1 }} to ${{2}} should be equal to 1 to 2 - run: echo "Done " - - - name: €{{ (true || false) }} to €{{ 2 }} -> ${{ (true || false) }} to ${{2}} should be equal to true to 2 - run: echo "Done " - - - name: €{{ (false || ' }}' ) }} to €{{ 2 }} -> ${{ (false || '}}' ) }} to ${{2}} should be equal to }} to 2 - run: echo "Done " - - - name: €{{ env.KEYWITHNOTHING }} -> ${{ env.KEYWITHNOTHING }} should be equal to valuewithnothing - run: echo "Done " - - - name: €{{ env.KEY-WITH-HYPHENS }} -> ${{ env.KEY-WITH-HYPHENS }} should be equal to value-with-hyphens - run: echo "Done " - - - name: €{{ env.KEY_WITH_UNDERSCORES }} -> ${{ env.KEY_WITH_UNDERSCORES }} should be equal to value_with_underscores - run: echo "Done " - - - name: €{{ secrets.CASE_INSENSITIVE_SECRET }} -> ${{ secrets.CASE_INSENSITIVE_SECRET }} should be equal to value - run: echo "Done " - - - name: €{{ secrets.case_insensitive_secret }} -> ${{ secrets.case_insensitive_secret }} should be equal to value - run: echo "Done " - - - name: €{{ vars.CASE_INSENSITIVE_VAR }} -> ${{ vars.CASE_INSENSITIVE_VAR }} should be equal to value - run: echo "Done " - - - name: €{{ vars.case_insensitive_var }} -> ${{ vars.case_insensitive_var }} should be equal to value - run: echo "Done " - - - name: €{{ env.UNKNOWN }} -> ${{ env.UNKNOWN }} should be equal to - run: echo "Done " - - - name: €{{ env.SOMETHING_TRUE }} -> ${{ env.SOMETHING_TRUE }} should be equal to true - run: echo "Done " - - - name: €{{ env.SOMETHING_FALSE }} -> ${{ env.SOMETHING_FALSE }} should be equal to false - run: echo "Done " - - - name: €{{ !env.SOMETHING_TRUE }} -> ${{ !env.SOMETHING_TRUE }} should be equal to false - run: echo "Done " - - - name: €{{ !env.SOMETHING_FALSE }} -> ${{ !env.SOMETHING_FALSE }} should be equal to false - run: echo "Done " - - - name: €{{ !env.SOMETHING_TRUE && true }} -> ${{ !env.SOMETHING_TRUE && true }} should be equal to false - run: echo "Done " - - - name: €{{ !env.SOMETHING_FALSE && true }} -> ${{ !env.SOMETHING_FALSE && true }} should be equal to false - run: echo "Done " - - - name: €{{ env.SOMETHING_TRUE && true }} -> ${{ env.SOMETHING_TRUE && true }} should be equal to true - run: echo "Done " - - - name: €{{ env.SOMETHING_FALSE && true }} -> ${{ env.SOMETHING_FALSE && true }} should be equal to true - run: echo "Done " - - - name: €{{ !env.SOMETHING_TRUE || true }} -> ${{ !env.SOMETHING_TRUE || true }} should be equal to true - run: echo "Done " - - - name: €{{ !env.SOMETHING_FALSE || true }} -> ${{ !env.SOMETHING_FALSE || true }} should be equal to true - run: echo "Done " - - - name: €{{ !env.SOMETHING_TRUE && false }} -> ${{ !env.SOMETHING_TRUE && false }} should be equal to false - run: echo "Done " - - - name: €{{ !env.SOMETHING_FALSE && false }} -> ${{ !env.SOMETHING_FALSE && false }} should be equal to false - run: echo "Done " - - - name: €{{ !env.SOMETHING_TRUE || false }} -> ${{ !env.SOMETHING_TRUE || false }} should be equal to false - run: echo "Done " - - - name: €{{ !env.SOMETHING_FALSE || false }} -> ${{ !env.SOMETHING_FALSE || false }} should be equal to false - run: echo "Done " - - - name: €{{ env.SOMETHING_TRUE || false }} -> ${{ env.SOMETHING_TRUE || false }} should be equal to true - run: echo "Done " - - - name: €{{ env.SOMETHING_FALSE || false }} -> ${{ env.SOMETHING_FALSE || false }} should be equal to false - run: echo "Done " - - - name: €{{ env.SOMETHING_FALSE }} && €{{ env.SOMETHING_TRUE }} -> ${{ env.SOMETHING_FALSE }} && ${{ env.SOMETHING_TRUE }} should be equal to false && true - run: echo "Done " - - - name: €{{ fromJSON('{}') < 2 }} -> ${{ fromJSON('{}') < 2 }} should be equal to false - run: echo "Done " diff --git a/.github/workflows/test-if.yml b/.github/workflows/test-if.yml deleted file mode 100644 index 9dde6f9..0000000 --- a/.github/workflows/test-if.yml +++ /dev/null @@ -1,412 +0,0 @@ -name: 'Test what expressions result in true and false on GitHub' -on: push - -env: - ACT: true - SOMETHING_FALSE: false - SOMETHING_TRUE: true - SOME_TEXT: text - -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: step6 - if: 1 != 0 - run: echo OK - - - name: 'Double checking expr: 1 != 0' - if: steps.step6.conclusion == 'skipped' - run: echo "1 != 0 should have been true, but wasn't" - - - name: '❌ I should not run, expr: 1 != 1' - id: step7 - 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: 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 not run, expr: 1 == 0' - id: step10 - 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: step11 - if: 1 == 1 - run: echo OK - - - name: 'Double checking expr: 1 == 1' - if: steps.step11.conclusion == 'skipped' - run: echo "1 == 1 should have been true, but wasn't" - - - name: '❌ I should not run, expr: 1 > 2' - id: step12 - 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: step13 - if: 1 < 2 - run: echo OK - - - name: 'Double checking expr: 1 < 2' - if: steps.step13.conclusion == 'skipped' - run: echo "1 < 2 should have been true, but wasn't" - - - name: '❌ I should not run, expr: true && false' - id: step14 - 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: step15 - if: true && 1 < 2 - run: echo OK - - - name: 'Double checking expr: true && 1 < 2' - if: steps.step15.conclusion == 'skipped' - run: echo "true && 1 < 2 should have been true, but wasn't" - - - name: '✅ I should run, expr: false || 1 < 2' - id: step16 - if: false || 1 < 2 - run: echo OK - - - name: 'Double checking expr: false || 1 < 2' - if: steps.step16.conclusion == 'skipped' - run: echo "false || 1 < 2 should have been true, but wasn't" - - - name: '❌ I should not run, expr: false || false' - id: step17 - 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: step18 - 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: step19 - 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: step20 - if: env.SOME_TEXT - run: echo OK - - - name: 'Double checking expr: env.SOME_TEXT' - if: steps.step20.conclusion == 'skipped' - run: echo "env.SOME_TEXT should have been true, but wasn't" - - - name: "✅ I should run, expr: env.SOME_TEXT == 'text'" - id: step21 - if: env.SOME_TEXT == 'text' - run: echo OK - - - name: "Double checking expr: env.SOME_TEXT == 'text'" - if: steps.step21.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: step22 - if: env.SOMETHING_TRUE == 'true' - run: echo OK - - - name: "Double checking expr: env.SOMETHING_TRUE == 'true'" - if: steps.step22.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: step23 - 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: step24 - if: env.SOMETHING_TRUE - run: echo OK - - - name: 'Double checking expr: env.SOMETHING_TRUE' - if: steps.step24.conclusion == 'skipped' - run: echo "env.SOMETHING_TRUE should have been true, but wasn't" - - - name: '✅ I should run, expr: env.SOMETHING_FALSE' - id: step25 - if: env.SOMETHING_FALSE - run: echo OK - - - name: 'Double checking expr: env.SOMETHING_FALSE' - if: steps.step25.conclusion == 'skipped' - run: echo "env.SOMETHING_FALSE should have been true, but wasn't" - - - name: '❌ I should not run, expr: €{{ !env.SOMETHING_TRUE }}' - id: step26 - 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: step27 - 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: step28 - 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: step29 - 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: step30 - if: ${{ env.SOMETHING_TRUE }} - run: echo OK - - - name: 'Double checking expr: €{{ env.SOMETHING_TRUE }}' - if: steps.step30.conclusion == 'skipped' - run: echo "${{ env.SOMETHING_TRUE }} should have been true, but wasn't" - - - name: '✅ I should run, expr: €{{ env.SOMETHING_FALSE }}' - id: step31 - if: ${{ env.SOMETHING_FALSE }} - run: echo OK - - - name: 'Double checking expr: €{{ env.SOMETHING_FALSE }}' - if: steps.step31.conclusion == 'skipped' - run: echo "${{ env.SOMETHING_FALSE }} should have been true, but wasn't" - - - 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 not run, expr: €{{ !env.SOMETHING_TRUE && true }}' - id: step34 - 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: step35 - 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: step36 - if: ${{ !env.SOMETHING_TRUE || true }} - run: echo OK - - - name: 'Double checking expr: €{{ !env.SOMETHING_TRUE || true }}' - if: steps.step36.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: step37 - 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: step38 - if: ${{ env.SOMETHING_TRUE && true }} - run: echo OK - - - name: 'Double checking expr: €{{ env.SOMETHING_TRUE && true }}' - if: steps.step38.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: step39 - if: ${{ env.SOMETHING_FALSE || true }} - run: echo OK - - - name: 'Double checking expr: €{{ env.SOMETHING_FALSE || true }}' - if: steps.step39.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: step40 - if: ${{ env.SOMETHING_FALSE || false }} - run: echo OK - - - name: 'Double checking expr: €{{ env.SOMETHING_FALSE || false }}' - if: steps.step40.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: step41 - if: ${{ env.SOMETHING_TRUE == 'true'}} - run: echo OK - - - name: "Double checking expr: €{{ env.SOMETHING_TRUE == 'true' }}" - if: steps.step41.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: step42 - 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: step43 - if: ${{ env.SOMETHING_FALSE == 'false'}} - run: echo OK - - - name: "Double checking expr: €{{ env.SOMETHING_FALSE == 'false' }}" - if: steps.step43.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: step44 - if: ${{ env.SOMETHING_FALSE }} && ${{ env.SOMETHING_TRUE }} - run: echo OK - - - name: 'Double checking expr: €{{ env.SOMETHING_FALSE }} && €{{ env.SOMETHING_TRUE }}' - if: steps.step44.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: step45 - if: false || env.SOMETHING_TRUE == 'true' - run: echo OK - - - name: "Double checking expr: false || env.SOMETHING_TRUE == 'true'" - if: steps.step45.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: step46 - if: true || env.SOMETHING_FALSE == 'true' - run: echo OK - - - name: "Double checking expr: true || env.SOMETHING_FALSE == 'true'" - if: steps.step46.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: step47 - if: true && env.SOMETHING_TRUE == 'true' - run: echo OK - - - name: "Double checking expr: true && env.SOMETHING_TRUE == 'true'" - if: steps.step47.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: step48 - 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: step49 - 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: step50 - 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: step51 - if: ${{ env.SOMETHING_FALSE == 'true' }} && true - run: echo OK - - - name: "Double checking expr: €{{ env.SOMETHING_FALSE == 'true' }} && true" - if: steps.step51.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: step52 - if: true && ${{ env.SOMETHING_FALSE == 'true' }} - run: echo OK - - - name: "Double checking expr: true && €{{ env.SOMETHING_FALSE == 'true' }}" - if: steps.step52.conclusion == 'skipped' - run: echo "true && ${{ env.SOMETHING_FALSE == 'true' }} should have been true, but wasn't" - - - name: "✅ I should run, expr: github.job == 'job1'" - id: step55 - if: github.job == 'job1' - run: echo OK - - - name: "Double checking expr: github.job == 'job1'" - if: steps.step55.conclusion == 'skipped' - run: echo "github.job == 'job1' should have been true, but wasn't" - - - name: '✅ I should run, expr: €{{ env.ACT }}' - id: step56 - if: ${{ env.ACT }} - run: echo OK - - - name: 'Double checking expr: €{{ env.ACT }}' - if: steps.step56.conclusion == 'skipped' - run: echo "${{ env.ACT }} should have been true, but wasn't" - - - name: '❌ I should not run, expr: €{{ !env.ACT }}' - id: step57 - if: ${{ !env.ACT }} - run: echo "${{ !env.ACT }} should be false, but was evaluated to true;" exit 1;