Skip to content

fix(ci): the BoJ trigger has never been a valid workflow - #74

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/boj-trigger-invalid-if
Aug 5, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
fix/boj-trigger-invalid-if

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

⚙ Auto: BoJ server build trigger has failed every run it has ever had, producing zero jobs and no log each time.

Cause

if: ${{ vars.BOJ_SERVER_URL != '' || secrets.BOJ_SERVER_URL != '' }}

GitHub rejects this outright:

Invalid workflow file: Unrecognized named-value: 'secrets'.
Located at position 30 within expression:
vars.BOJ_SERVER_URL != '' || secrets.BOJ_SERVER_URL != ''

The secrets context is not available in a job-level if: — only in env:, with:, run:, and reusable-workflow inputs. So the file has never been a valid workflow, and the run dies during expression evaluation before any job exists. That is why it leaves no log and no check run: there is nothing to log.

Why deleting the guard is the right fix

It was redundant as well as broken. The step already does the same job correctly:

env:
  BOJ_URL: ${{ secrets.BOJ_SERVER_URL || vars.BOJ_SERVER_URL }}   # legal here
run: |
  if [ -z "$BOJ_URL" ]; then
    echo "BOJ_SERVER_URL not configured - skipping"; exit 0
  fi

Removing the broken guard restores exactly the intended behaviour: a clean skip when the server is not configured.

A note on the alternative. lithoglyph was already cured differently — by narrowing the guard to if: ${{ vars.BOJ_SERVER_URL != '' }}. That is valid, and its runs now show skipped rather than failure, which is how this diagnosis was confirmed against a control. But it silently breaks secret-only configuration, which this workflow's own header explicitly supports ("set BOJ_SERVER_URL as a repository secret or variable"). Deleting the guard honours the documented contract; narrowing it does not.

Scope

51 repositories carry the identical broken line, so 51 default branches have been permanently red on a workflow that has never once executed. This PR is one of that set.

Because the workflow has never been valid, this change cannot regress anything — there is no working behaviour to lose.

Found during the 2026-08-05 estate CI/CD census.

🤖 Generated with Claude Code

⚙ Auto: BoJ server build trigger has failed every run, with zero jobs each
time. The reason is a job-level guard:

  if: ${{ vars.BOJ_SERVER_URL != '' || secrets.BOJ_SERVER_URL != '' }}

GitHub rejects this outright — "Unrecognized named-value: 'secrets'". The
secrets context is not available in a job-level if:, only in env:, with:,
run: and reusable-workflow inputs. So the file has never been a valid
workflow, and the run fails during expression evaluation before any job
exists. That is why it produces no log and no check run: there is nothing
to log.

The guard is also redundant. The step already sets

  env: BOJ_URL: ${{ secrets.BOJ_SERVER_URL || vars.BOJ_SERVER_URL }}

which IS a legal use of the secrets context, and then exits 0 early when
BOJ_URL is empty. Deleting the broken guard restores exactly the intended
behaviour: a clean skip when the server is not configured.

This is not a local defect. 51 repositories in the estate carry the same
line, which means 51 mains have been permanently red on a workflow that
has never once executed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
@gitar-bot

gitar-bot Bot commented Aug 5, 2026 •

Copy link
Copy Markdown

Note

Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime.
Learn more

Code Review ✅ Approved

Removes the invalid secrets context check from the job-level workflow condition that caused continuous CI failures. No issues found.

Auto-approved and auto-merge armed: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria. — merges when pipeline and required approvals pass.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Important

Your trial ends in 5 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more.

Was this helpful? React with 👍 / 👎 | Gitar

@sonarqubecloud

sonarqubecloud Bot commented Aug 5, 2026

Copy link
Copy Markdown

@gitar-bot

gitar-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown

⚠️ Gitar auto-approved this PR but could not enable auto-merge: auto-merge is disabled for this repository — enable "Allow auto-merge" in the repository settings.

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gitar has auto-approved this PR and enabled auto-merge (configure)

@gitar-bot gitar-bot Bot added the gitar-approved Added by Gitar label Aug 5, 2026
@hyperpolymath
hyperpolymath merged commit 27cf5e5 into main Aug 5, 2026
28 checks passed
@hyperpolymath
hyperpolymath deleted the fix/boj-trigger-invalid-if branch August 5, 2026 06:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitar-approved Added by Gitar

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant