From 5780ba0e380d619c7e6632edbf6e357dce73289f Mon Sep 17 00:00:00 2001 From: Levente Polyak Date: Fri, 16 Feb 2024 22:34:43 +0100 Subject: fix(release): ensure we release split package uploads as one batch Use a central location in common.sh to define the default rsync options. Switch to use batched uploads by targeting a partial directory which is not taken into account by db update. Instead, once all packages that belong to a split package group are uploaded into the .partial directory, all artifacts are moved in one batch into the staging directory of the repo server. This reduced the window of opportunity for a partial release significantly to a tiny window. Component: pkgctl release --- src/commitpkg.in | 2 +- src/lib/common.sh | 11 +++++++++++ src/offload-build.in | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/commitpkg.in b/src/commitpkg.in index e17b270..deb02be 100644 --- a/src/commitpkg.in +++ b/src/commitpkg.in @@ -151,7 +151,7 @@ fi server=${PACKAGING_REPO_RELEASE_HOST} -rsyncopts=(-e ssh -p '--chmod=ug=rw,o=r' -c -h -L --progress --partial -y) +rsyncopts=("${RSYNC_OPTS[@]}" --perms --chmod='ug=rw,o=r') archreleaseopts=() while getopts ':l:a:s:f' flag; do case $flag in diff --git a/src/lib/common.sh b/src/lib/common.sh index 00ece97..7d04c25 100644 --- a/src/lib/common.sh +++ b/src/lib/common.sh @@ -31,6 +31,17 @@ export PACKAGING_REPO_RELEASE_HOST=repos.archlinux.org export PKGBASE_MAINTAINER_URL=https://archlinux.org/packages/pkgbase-maintainer export AUR_URL_SSH=aur@aur.archlinux.org +export RSYNC_OPTS=( + --rsh=ssh + --checksum + --copy-links + --human-readable + --progress + --partial + --partial-dir=.partial + --delay-updates +) + # ensure TERM is set with a fallback to dumb export TERM=${TERM:-dumb} diff --git a/src/offload-build.in b/src/offload-build.in index 7a8c1fd..b272a74 100644 --- a/src/offload-build.in +++ b/src/offload-build.in @@ -23,7 +23,7 @@ fi repo=extra arch=x86_64 server=build.archlinux.org -rsyncopts=(-e ssh -c -h -L --progress --partial -y) +rsyncopts=("${RSYNC_OPTS[@]}") usage() { cat <<- _EOF_ -- cgit v1.2.3-70-g09d2