Commit Graph

10 Commits

Author SHA1 Message Date
986c212b82 Replace per-package push scripts with a self-healing AUR reconciler
The six nightly workflows each cloned a package repo and ran that repo's own
push.sh. Two problems compounded into months of silent breakage.

push.sh pushed to origin before the AUR. When the AUR push failed, origin
already carried the new version, so every later run hit "same (old) version
specified", bare-exit 0'd, and the workflow went green while the AUR rotted.
reflex-appimage sat at 1.0.11 locally against 1.0.10 published; nethlink-appimage
was never submitted at all.

The AUR pushes were failing because .SRCINFO was empty -- 0 bytes in
reflex-appimage, 1 byte in nethlink-appimage and pman-helper, against 500-2000
in the healthy ones. The AUR rejects an invalid .SRCINFO. Both PKGBUILDs verify
clean under a real Arch makepkg, so this was the CI environment, and with no
set -e the script committed and pushed the truncated file regardless.

pman-helper failed independently: the workflows queried the Gitea endpoint
/repos/{owner}/{repo}/repo/tags, which 404s -- the correct path is /tags. The
empty result fell through to an interactive read that got EOF, and it committed
pkgver="" plus the sha256 of a zero-byte download.

The replacement is a reconciler rather than a version-bump script. A new
upstream release, a manual push to origin, and a push that failed last night
all take the same path, and the AUR reconcile runs on every pass -- so a failed
push simply retries. Sync is decided by comparing tree content against the AUR,
not by whether this run happened to find something new.

pkgrel is now derived from the AUR rather than from local history, which is
what makes it idempotent: a version differing from the published one resets it
to 1, a packaging change increments it, and once published the next run sees no
difference and does nothing. Editing a PKGBUILD no longer needs a manual bump.

Checksums are computed directly instead of via makepkg -g / updpkgsums. Those
generate every arch array in one pass into a single directory, so when two
arches rename to the same target the second finds the first one's file and
emits an identical, silently wrong sum -- verified against freetube-appimage.
Downloads go to content-addressed cache paths instead. Multi-arch works for
when it is needed; single-arch is the degenerate case of the same loop.

Guards for each observed failure: a real Arch makepkg in an archlinux container
as non-root, set -euo pipefail throughout, .SRCINFO validated against the
PKGBUILD before any commit, and a failed version lookup exiting 1 so it can
never again be mistaken for a quiet "no new version" night.

Package-specific detail moves out of this repo entirely, into an .autoupdate
manifest committed to each package repo. sha256 only; sha1sums and md5sums are
removed. deskflow-bin and freetube-appimage are dropped from automation, having
been deleted from the AUR.

Covered by test.sh: 37 assertions against local bare repos and a local HTTP
server, no network and never touching the real AUR. The retry, pkgrel
idempotence and multi-arch collision tests were each verified by mutation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 22:50:07 +02:00
1a027be9da feat: added pman-helper package
All checks were successful
Update reflex-appimage Package / update (push) Successful in 51s
Update pman-helper Package / update (push) Successful in 45s
Update open-video-downloader-bin Package / update (push) Successful in 41s
Update open-video-downloader-appimage Package / update (push) Successful in 42s
Update nethlink-appimage Package / update (push) Successful in 39s
Update deskflow-bin Package / update (push) Successful in 38s
2026-05-30 12:22:53 +02:00
48022a5477 better formatting 2026-05-30 12:22:22 +02:00
ce7698e524 feat: added nethlink-appimage package
All checks were successful
Update reflex-appimage Package / update (push) Successful in 30s
Update open-video-downloader-bin Package / update (push) Successful in 25s
Update open-video-downloader-appimage Package / update (push) Successful in 26s
Update nethlink-appimage Package / update (push) Successful in 25s
Update deskflow-bin Package / update (push) Successful in 28s
2026-05-22 12:01:31 +02:00
0f24e788d6 fix(ci): install makepkg package on ubuntu 2026-05-22 12:01:02 +02:00
8d067256a0 fix(ci): standardize Gitea git auth env vars in workflows
Some checks failed
Update reflex-appimage Package / update (push) Failing after 30s
Update open-video-downloader-bin Package / update (push) Successful in 11s
Update open-video-downloader-appimage Package / update (push) Successful in 6s
Update deskflow-bin Package / update (push) Successful in 6s
Replace `GITEA_TOKEN`/`GITEA_HOST` with `GIT_TOKEN`/`GIT_HOST` in
workflow credential setup and clone URLs for affected AUR jobs.
2026-05-07 16:08:42 +02:00
d4a36aebfc added deskflow-bin and reflex-appimage workflows
Some checks failed
Update reflex-appimage Package / update (push) Failing after 9s
Update open-video-downloader-bin Package / update (push) Failing after 5s
Update open-video-downloader-appimage Package / update (push) Failing after 6s
Update deskflow-bin Package / update (push) Failing after 6s
2026-05-06 17:23:06 +02:00
288d625bdc added open-video-downloader-appimage workflow 2026-05-06 11:52:25 +02:00
729deea95f added open-video-downloader-bin workflow 2026-05-06 11:05:10 +02:00
a28c773880 first commit 2026-05-06 10:52:05 +02:00