v2
This commit is contained in:
1 parent
0efaae1715
commit
c1a2a8cc30
13 files changed
+180
-137
No files matched your search
+15
-19
@@ -68,17 +68,15 @@ RPM="$OUT/rustbox-${VERSION}-${RELEASE}.x86_64.rpm"
|
||||
SUSE="$OUT/rustbox-${VERSION}-${RELEASE}.suse.x86_64.rpm"
|
||||
nfpm package --config "$PKG/nfpm-deb.yaml" --packager deb --target "$DEB"
|
||||
nfpm package --config "$PKG/nfpm-rpm.yaml" --packager rpm --target "$RPM"
|
||||
if [[ "${BUILD_SUSE:-1}" == 1 ]]; then
|
||||
nfpm package --config "$PKG/nfpm-suse.yaml" --packager rpm --target "$SUSE"
|
||||
fi
|
||||
nfpm package --config "$PKG/nfpm-suse.yaml" --packager rpm --target "$SUSE"
|
||||
|
||||
ar t "$DEB" | grep '^_gpgorigin$' >/dev/null || fatal "DEB package is not signed"
|
||||
rpm -qpi "$RPM" | awk -F: '/^Signature/ && $0 !~ /\(none\)/ {ok=1} END{exit !ok}' || fatal "RPM package is not signed"
|
||||
if [[ -f "$SUSE" ]]; then rpm -qpi "$SUSE" | awk -F: '/^Signature/ && $0 !~ /\(none\)/ {ok=1} END{exit !ok}' || fatal "SUSE RPM package is not signed"; fi
|
||||
rpm -qpi "$SUSE" | awk -F: '/^Signature/ && $0 !~ /\(none\)/ {ok=1} END{exit !ok}' || fatal "SUSE RPM package is not signed"
|
||||
|
||||
cp -f "$DEB" "$DATA_DIR/packages/deb/"
|
||||
cp -f "$RPM" "$DATA_DIR/packages/rpm/x86_64/"
|
||||
[[ -f "$SUSE" ]] && cp -f "$SUSE" "$DATA_DIR/packages/suse/x86_64/"
|
||||
cp -f "$SUSE" "$DATA_DIR/packages/suse/x86_64/"
|
||||
|
||||
aptly -config="$APTLY_CONF" repo add -force-replace rustbox "$DEB" >/dev/null
|
||||
SNAPSHOT="rustbox-${VERSION}-${SHORT_SHA}-$(date +%s)"
|
||||
@@ -97,25 +95,27 @@ RELEASE_DIR="$REPOSITORY/releases/$RELEASE_ID"
|
||||
mkdir -p "$RELEASE_DIR/apt" "$RELEASE_DIR/rpm/x86_64" "$RELEASE_DIR/suse/x86_64"
|
||||
rsync -a --delete "$APT_PUBLIC/" "$RELEASE_DIR/apt/"
|
||||
rsync -a --delete "$DATA_DIR/packages/rpm/x86_64/" "$RELEASE_DIR/rpm/x86_64/"
|
||||
if [[ "${BUILD_SUSE:-1}" == 1 ]]; then rsync -a --delete "$DATA_DIR/packages/suse/x86_64/" "$RELEASE_DIR/suse/x86_64/"; fi
|
||||
rsync -a --delete "$DATA_DIR/packages/suse/x86_64/" "$RELEASE_DIR/suse/x86_64/"
|
||||
|
||||
for rpm_root in "$RELEASE_DIR/rpm/x86_64"; do
|
||||
rm -rf "$rpm_root/repodata"; createrepo_c --update "$rpm_root" >/dev/null
|
||||
done
|
||||
if [[ "${BUILD_SUSE:-1}" == 1 ]]; then
|
||||
rm -rf "$RELEASE_DIR/suse/x86_64/repodata"; createrepo_c --update "$RELEASE_DIR/suse/x86_64" >/dev/null
|
||||
fi
|
||||
rm -rf "$RELEASE_DIR/suse/x86_64/repodata"; createrepo_c --update "$RELEASE_DIR/suse/x86_64" >/dev/null
|
||||
GPG_SIGN=(--batch --yes --pinentry-mode loopback)
|
||||
for rpm_root in "$RELEASE_DIR/rpm/x86_64"; do
|
||||
gpg "${GPG_SIGN[@]}" --armor --detach-sign --local-user "$GPG_KEY_ID" --output "$rpm_root/repodata/repomd.xml.asc" "$rpm_root/repodata/repomd.xml"
|
||||
done
|
||||
if [[ "${BUILD_SUSE:-1}" == 1 ]]; then
|
||||
gpg "${GPG_SIGN[@]}" --armor --detach-sign --local-user "$GPG_KEY_ID" --output "$RELEASE_DIR/suse/x86_64/repodata/repomd.xml.asc" "$RELEASE_DIR/suse/x86_64/repodata/repomd.xml"
|
||||
fi
|
||||
gpg "${GPG_SIGN[@]}" --armor --detach-sign --local-user "$GPG_KEY_ID" --output "$RELEASE_DIR/suse/x86_64/repodata/repomd.xml.asc" "$RELEASE_DIR/suse/x86_64/repodata/repomd.xml"
|
||||
gpg --batch --armor --export "$GPG_KEY_ID" > "$RELEASE_DIR/repo-key.gpg"
|
||||
|
||||
BUILT_AT=$(date -u '+%Y-%m-%dT%H:%M:%SZ')
|
||||
cat > "$RELEASE_DIR/LINUX-BUILD-INFO.txt" <<INFO
|
||||
for family in debian rhel suse; do
|
||||
case "$family" in
|
||||
debian) info_file="$RELEASE_DIR/DEBIAN-BUILD-INFO.txt" ;;
|
||||
rhel) info_file="$RELEASE_DIR/RHEL-BUILD-INFO.txt" ;;
|
||||
suse) info_file="$RELEASE_DIR/SUSE-BUILD-INFO.txt" ;;
|
||||
esac
|
||||
cat > "$info_file" <<INFO
|
||||
app_version=$VERSION
|
||||
package_release=$RELEASE
|
||||
built_at=$BUILT_AT
|
||||
@@ -124,13 +124,9 @@ source_url=$SOURCE_REPO
|
||||
source_ref=$SOURCE_BRANCH
|
||||
source_commit=$SHA
|
||||
build_reason=source-or-packaging-change
|
||||
package_family=$family
|
||||
INFO
|
||||
if [[ "${BUILD_SUSE:-1}" == 1 ]]; then
|
||||
cp "$RELEASE_DIR/LINUX-BUILD-INFO.txt" "$RELEASE_DIR/SUSE-BUILD-INFO.txt"
|
||||
printf '%s\n' 'rpm_flavor=suse' >> "$RELEASE_DIR/SUSE-BUILD-INFO.txt"
|
||||
else
|
||||
: > "$RELEASE_DIR/SUSE-BUILD-INFO.txt"
|
||||
fi
|
||||
done
|
||||
|
||||
rm -f "$REPOSITORY/current.new"
|
||||
ln -s "releases/$RELEASE_ID" "$REPOSITORY/current.new"
|
||||
|
||||
@@ -13,9 +13,9 @@ git fetch --no-tags --prune origin "$SOURCE_BRANCH"
|
||||
SHA=$(git rev-parse FETCH_HEAD)
|
||||
CURRENT_SHA=""
|
||||
CURRENT_REV=""
|
||||
if [[ -r "$REPOSITORY/current/LINUX-BUILD-INFO.txt" ]]; then
|
||||
CURRENT_SHA=$(sed -n 's/^source_commit=//p' "$REPOSITORY/current/LINUX-BUILD-INFO.txt" | head -n1)
|
||||
CURRENT_REV=$(sed -n 's/^packaging_revision=//p' "$REPOSITORY/current/LINUX-BUILD-INFO.txt" | head -n1)
|
||||
if [[ -r "$REPOSITORY/current/DEBIAN-BUILD-INFO.txt" ]]; then
|
||||
CURRENT_SHA=$(sed -n 's/^source_commit=//p' "$REPOSITORY/current/DEBIAN-BUILD-INFO.txt" | head -n1)
|
||||
CURRENT_REV=$(sed -n 's/^packaging_revision=//p' "$REPOSITORY/current/DEBIAN-BUILD-INFO.txt" | head -n1)
|
||||
fi
|
||||
if [[ "$CURRENT_SHA" == "$SHA" && "$CURRENT_REV" == "$PACKAGING_REVISION" ]]; then
|
||||
log "no new RustBox build: commit=$SHA packaging_revision=$PACKAGING_REVISION"
|
||||
|
||||
@@ -10,9 +10,8 @@ source /opt/rustbox-package-builder/scripts/lib.sh
|
||||
: "${PACKAGE_RELEASE:=auto}"
|
||||
: "${RUN_LINUX_TESTS:=compile}"
|
||||
: "${MAX_GLIBC_VERSION:=2.34}"
|
||||
: "${BUILD_SUSE:=1}"
|
||||
: "${RELEASE_RETENTION:=10}"
|
||||
export SOURCE_BRANCH POLL_INTERVAL REPO_DISTRIBUTION REPO_COMPONENT PACKAGE_RELEASE RUN_LINUX_TESTS MAX_GLIBC_VERSION BUILD_SUSE RELEASE_RETENTION
|
||||
export SOURCE_BRANCH POLL_INTERVAL REPO_DISTRIBUTION REPO_COMPONENT PACKAGE_RELEASE RUN_LINUX_TESTS MAX_GLIBC_VERSION RELEASE_RETENTION
|
||||
mkdir -p "$DATA_DIR"/{state,repository,work,cargo,packages} /tmp/rustbox-gnupg
|
||||
chmod 0700 /tmp/rustbox-gnupg
|
||||
export GNUPGHOME=/tmp/rustbox-gnupg
|
||||
|
||||
@@ -21,12 +21,13 @@ export APTLY_CONF
|
||||
if ! aptly -config="$APTLY_CONF" repo list -raw | grep -Fx rustbox >/dev/null; then
|
||||
aptly -config="$APTLY_CONF" repo create -distribution="$REPO_DISTRIBUTION" -component="$REPO_COMPONENT" rustbox >/dev/null
|
||||
fi
|
||||
for item in apt rpm suse repo-key.gpg LINUX-BUILD-INFO.txt SUSE-BUILD-INFO.txt; do
|
||||
for item in apt rpm suse repo-key.gpg DEBIAN-BUILD-INFO.txt RHEL-BUILD-INFO.txt SUSE-BUILD-INFO.txt; do
|
||||
[[ ! -e "$REPOSITORY/$item" || -L "$REPOSITORY/$item" ]] || fatal "$REPOSITORY/$item exists and is not a symlink"
|
||||
done
|
||||
ln -sfn current/apt "$REPOSITORY/apt"
|
||||
ln -sfn current/rpm "$REPOSITORY/rpm"
|
||||
ln -sfn current/suse "$REPOSITORY/suse"
|
||||
ln -sfn current/repo-key.gpg "$REPOSITORY/repo-key.gpg"
|
||||
ln -sfn current/LINUX-BUILD-INFO.txt "$REPOSITORY/LINUX-BUILD-INFO.txt"
|
||||
ln -sfn current/DEBIAN-BUILD-INFO.txt "$REPOSITORY/DEBIAN-BUILD-INFO.txt"
|
||||
ln -sfn current/RHEL-BUILD-INFO.txt "$REPOSITORY/RHEL-BUILD-INFO.txt"
|
||||
ln -sfn current/SUSE-BUILD-INFO.txt "$REPOSITORY/SUSE-BUILD-INFO.txt"
|
||||
Reference in new issue
Block a user