fix(ci): recover partially enrolled AppImage toolchain PPAs #2275
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!2275
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/appimage-ppa-recovery"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
A transient PPA signing-key failure can leave AppImage retries unable to repair the source. Launchpad metadata stalls can also consume the job's full hour before retries finish. This keeps enrollment repair ahead of the signed-index refresh and gives each enrollment attempt a deadline.
Fixes #2266.
Technical changes
--no-update, then explicitly refresh signed indexes before installing dependent packages. Package/repository/authentication policy remains unchanged.124and forced-termination status137remain failures; subsequent attempts revisit partial enrollment first.Validation
Tested
027c1f6con main49f75dc8:jqwas supplied on Linux; the POSIX bootstrap test runs there.add_sourcethenadd_keyeven for an already-present source.No real package/network operation occurs in local tests. Hosted current-head checks still need to complete; a persistent Launchpad outage is not repaired by a retry/deadline. No gameplay/rendering change or runtime claim.
Claimed before implementation in dev-work. The separate container-build PR #1936 retains the same package/PPA contract. Earlier-head AppImage cancellation and this deadline follow-up are documented in the conversation; exact current-head CI links follow.
Enrollment deadline follow-up at
027c1f6c: the earlier AppImage reached GitHub's one-hour limit while still in System packages (run). Each PPA enrollment now gets 180 seconds plus 5 seconds before forced termination, so all three retries can be reached without weakening signed-index checks.The new timeout/forced-termination controls pass, alongside the existing stateful recovery cases and six causal mutations. Full Linux (351 passed, 0 failed, 23 skipped) and Windows (341 passed, 3 failed, 30 skipped) match exact main
49f75dc8. Fresh hosted checks are starting; persistent Launchpad unavailability still fails the job.Looks good. Splitting the bootstrap into two retried phases is the right fix for #2266: a source left without its key is now repaired by the next
add-apt-repository --no-updatebefore anything runsapt-get updateagainst it, instead of the base refresh failing with NO_PUBKEY on every retry. Keeping the explicitapt-get updateright after enrollment means the signed-index refresh is unchanged, and the final failing status is still preserved. The 180s + 5s kill-after deadline per enrollment is a sensible way to keep three attempts inside the job's hour. I checked the workflow diff against main:linux-appimage.ymlhas not changed there since #2132/#2124, so there is no conflict, and the PR is mergeable.CI: the red jobs (AppImage, Linux Python parts 1/2, SPIR-V fixtures) all fail on
Temporary failure resolving 'azure.archive.ubuntu.com'/archive.ubuntu.comin the runners' own apt steps, not in anything this PR touches. Windows tests, the Windows Vulkan build, actionlint and the title check pass. Please re-run the failed jobs once before merging, so the AppImage job gets to actually exercise the new path.Nit: the timeout only covers enrollment;
apt-get updateright after it can still hang on Launchpad. That is fine for this PR (the description says so), just worth knowing if the hour limit is hit again.Thanks for the review. Agreed on the remaining apt-update timeout limit. Could a maintainer rerun the failed jobs for AppImage and source/SPIR-V checks before merging? Those attempts stopped on runner DNS failures before exercising the changed path. I can't restart these upstream runs with my repository permissions.
github-sync referenced this pull request2026-11-12 06:22:54 +00:00