Compare commits

..
Author SHA1 Message Date
60d67022e2
fix(ci): detect existing R versions via public object HEAD probe
The existing-version check listed the bucket with an anonymous curl, but
Backblaze B2 requires authentication for the list-bucket API, so it returned
AccessDenied and r-versions-existing.txt was always empty -> every version
was rebuilt despite already existing in s3.

Signing the request is not workable here: the B2 credentials are scoped to
the plugin-s3 image in crow and are not injected into this plain alpine step
(curl saw --user ":").

Individual artifacts are public-read, so probe each expected object URL with
an anonymous HEAD instead of listing the bucket. The filename mirrors what
nfpm produces (version/release pinned to 1): r-<ver>_1_<arch>.{apk,deb} for
alpine/ubuntu and R-<ver>-1-1.<arch>.rpm for el*. Verified against the live
bucket for all three packager families.
2026-06-29 14:09:50 +02:00
1e278cdb3a fix(ci): authenticate B2 list-bucket request in existing-version check (#7)
Some checks failed
ci/crow/cron/build/1 Pipeline was successful
ci/crow/cron/build/2 Pipeline was successful
ci/crow/cron/build/4 Pipeline was successful
ci/crow/cron/build/5 Pipeline was successful
ci/crow/cron/build/6 Pipeline was successful
ci/crow/cron/build/8 Pipeline was successful
ci/crow/cron/build/10 Pipeline was successful
ci/crow/cron/build/11 Pipeline was successful
ci/crow/cron/build/12 Pipeline was successful
ci/crow/cron/build/13 Pipeline was successful
ci/crow/cron/build/3 Pipeline was successful
ci/crow/cron/build/18 Pipeline was successful
ci/crow/cron/build/16 Pipeline was successful
ci/crow/cron/build/14 Pipeline was successful
ci/crow/cron/build/9 Pipeline was successful
ci/crow/cron/build/17 Pipeline was canceled
ci/crow/cron/build/15 Pipeline was canceled
ci/crow/cron/build/7 Pipeline was canceled
Backblaze B2 requires authentication for the list-bucket API; anonymous
access only works for individual public-read objects. The unauthenticated
curl returned AccessDenied, so r-version-s3.txt was always empty and every
R version was rebuilt despite already existing in s3.

Sign the listing request with --aws-sigv4 using the same B2 credentials as
the upload step. Also fix the broken version extraction: the old
substr($NF, 3, 5) ran against the prefixed key and yielded garbage, so the
Build step's grep could never match. Print the actual version on a match
and use a literal index() instead of a regex comparison.

Reviewed-on: #7
2026-06-29 11:02:04 +00:00

Diff content is not available