Skip to content

ci(release): make winget job bootstrap-aware for un-submitted manifest (#484)#485

Draft
padak wants to merge 1 commit into
mainfrom
claude/issue-484-winget-bootstrap-aware
Draft

ci(release): make winget job bootstrap-aware for un-submitted manifest (#484)#485
padak wants to merge 1 commit into
mainfrom
claude/issue-484-winget-bootstrap-aware

Conversation

@padak

@padak padak commented Jul 16, 2026

Copy link
Copy Markdown
Member

What

Make the winget job in release-kbagent.yml bootstrap-aware: distinguish the known, expected "package not yet submitted to microsoft/winget-pkgs" state from a genuine wingetcreate failure.

Why

Per #484, v0.66.1 was the first release ever to actually reach the winget job (previously skipped because its needs: chain failed until #476). wingetcreate update only patches an existing manifest — and Keboola.KeboolaCLI2 has never been bootstrapped in microsoft/winget-pkgs. So the job 404s with was not found and fails, even though the WinGet channel being absent is the same expected state as every prior version.

This change stops that expected, un-bootstrapped state from masquerading as a silent regression in the release run, while keeping real winget errors fatal.

Scope / what this does NOT do

This is only issue #484's optional follow-up (point 3). It does not perform the actual first-time submission — that still requires a human with WINGET_TOKEN access to run wingetcreate new locally/interactively once against the Windows asset and shepherd the initial PR through Microsoft's review, as described in the issue. Once that initial manifest is merged upstream, wingetcreate update succeeds normally and this skip branch is never taken.

Testing

  • python3 -c "import yaml; yaml.safe_load(...)" — workflow YAML parses.
  • Reviewed the bash branch logic: set +e / captured $status / set -e, case-insensitive grep -qi "was not found" for the skip path, hard-fail preserved for every other exit code.
  • Pure CI workflow change — no CLI/Python surface, no changelog entry required (make changelog-check passes), no silent-drift command surfaces affected.

Note for review: this deliberately makes the un-bootstrapped winget state non-fatal. If the release pipeline should instead keep hard-failing until bootstrap, that's a one-line change (drop the exit 0).

Fixes #484

#484)

wingetcreate update only patches an existing manifest in microsoft/winget-pkgs.
Until Keboola.KeboolaCLI2 is bootstrapped there via a one-time interactive
wingetcreate new submission, every run 404s with "was not found" and fails the
job, making a first-run-after-a-gap look like a silent regression.

Distinguish that known, expected not-found state (skip with a loud pointer to
issue #484 in the step summary) from a genuine winget failure (still hard-fails).
Matovidlo added a commit that referenced this pull request Jul 16, 2026
The `test-install` Homebrew (Linux) leg failed with "Refusing to load
formula ... from untrusted tap". Some homebrew/brew image builds ship
HOMEBREW_REQUIRE_TAP_TRUST set, which blocks loading formulae from a
third-party tap. Unset it in the smoke test.

Version-independent (the `brew trust` command the error suggests does not
exist in current Homebrew 4.6.20) and mirrors the default end-user
environment, where the var is unset.

Homebrew tap push, chocolatey checksum, and winget bootstrap are handled
separately by #476 (merged) and #485.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

winget: first-ever release run fails — package was never bootstrapped in microsoft/winget-pkgs

1 participant