From 68eac613d7d2f74fd4236b43df7d632eb9aff4b6 Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Fri, 30 Jul 2021 12:53:57 -0700 Subject: [PATCH] Use 'aws s3 rsync' to upload linux builds, not aptly --- .aptly.conf | 12 ---------- aptly.sh | 66 ++++++++++++++++++++++++++--------------------------- 2 files changed, 32 insertions(+), 46 deletions(-) delete mode 100644 .aptly.conf diff --git a/.aptly.conf b/.aptly.conf deleted file mode 100644 index 672d616d39..0000000000 --- a/.aptly.conf +++ /dev/null @@ -1,12 +0,0 @@ -{ - "S3PublishEndpoints": { - "signal-desktop-apt": { - "region": "us-east-1", - "bucket": "updates.signal.org", - "prefix": "desktop/apt", - "acl": "public-read", - "plusWorkaround": false, - "disableMultiDel": false - } - } -} diff --git a/aptly.sh b/aptly.sh index e446811b48..b4dd49703d 100755 --- a/aptly.sh +++ b/aptly.sh @@ -3,26 +3,7 @@ # Copyright 2017-2021 Signal Messenger, LLC # SPDX-License-Identifier: AGPL-3.0-only -# Setup - creates the local repo which will be mirrored up to S3, then back-fill it. Your -# future deploys will eliminate all old versions without these backfill steps: -# aptly repo create signal-desktop -# aptly mirror create -ignore-signatures backfill-mirror https://updates.signal.org/desktop/apt xenial -# aptly mirror update -ignore-signatures backfill-mirror -# aptly repo import backfill-mirror signal-desktop signal-desktop signal-desktop-beta -# aptly repo show -with-packages signal-desktop -# -# First run on a machine - uncomment the first set of 'aptly publish snapshot' commands, -# comment the other two. Sets up the two publish channels, one local, one to S3. -# -# Testing - comment out the lines with s3:$ENDPOINT to publish only locally. To eliminate -# effects of testing, remove package from repo, then move back to old snapshot: -# aptly repo remove signal-desktop signal-desktop_1.0.35_amd64 -# aptly publish switch -gpg-key=57F6FB06 xenial signal-desktop_v1.0.34 -# -# Pruning package set - we generally want 2-3 versions of each stream available, -# production and beta. You can remove old packages like this: -# aptly repo show -with-packages signal-desktop -# aptly repo remove signal-desktop signal-desktop_1.0.34_amd64 +# First run on a machine - uncomment the two 'first run' sections below, comment out the 'later runs' section. # # Release: # NAME=signal-desktop(-beta) VERSION=X.X.X ./aptly.sh @@ -31,30 +12,47 @@ set -e set -u set -o pipefail -echo "Releasing $NAME build version $VERSION" +echo +echo "aptly.sh: Releasing $NAME build version $VERSION" REPO=signal-desktop CURRENT=xenial -# PREVIOUS=xenial -ENDPOINT=signal-desktop-apt # Matches endpoint name in .aptly.conf SNAPSHOT="signal-desktop_v$VERSION" GPG_KEYID=57F6FB06 +# FIRST RUN +# echo +# echo "aptly.sh: Setting up repo and mirror" +# aptly repo create signal-desktop +# aptly mirror create -ignore-signatures backfill-mirror https://updates.signal.org/desktop/apt xenial + +echo +echo "aptly.sh: Fetching latest released files so we don't erase anything" +aptly mirror update -ignore-signatures backfill-mirror +aptly repo import backfill-mirror signal-desktop signal-desktop signal-desktop-beta + +echo +echo "aptly.sh: Adding newly-built deb to repo" aptly repo add "$REPO" release/"$NAME"_"$VERSION"_*.deb + +echo +echo "aptly.sh: Creating a snapshot from the current state of the repo" aptly snapshot create "$SNAPSHOT" from repo "$REPO" -# run these only on first release to a given repo from a given machine. the first set is -# for local testing, the second set is to set up the production server. -# https://www.aptly.info/doc/aptly/publish/snapshot/ +# FIRST RUN - https://www.aptly.info/doc/aptly/publish/snapshot/ +# echo +# echo "aptly.sh: Setting up local publish with current snapshot" # aptly publish snapshot -gpg-key="$GPG_KEYID" -distribution="$CURRENT" "$SNAPSHOT" -# aptly publish snapshot -gpg-key="$GPG_KEYID" -distribution="$PREVIOUS" "$SNAPSHOT" -# aptly publish snapshot -gpg-key="$GPG_KEYID" -distribution="$CURRENT" -config=.aptly.conf "$SNAPSHOT" "s3:$ENDPOINT:" -# aptly publish snapshot -gpg-key="$GPG_KEYID" -distribution="$PREVIOUS" -config=.aptly.conf "$SNAPSHOT" "s3:$ENDPOINT:" -# these update already-published repos, run every time after that -# https://www.aptly.info/doc/aptly/publish/switch/ +# LATER RUNS - https://www.aptly.info/doc/aptly/publish/switch/ +echo +echo "aptly.sh: Switching local publish to current snapshot" aptly publish switch -gpg-key="$GPG_KEYID" "$CURRENT" "$SNAPSHOT" -# aptly publish switch -gpg-key="$GPG_KEYID" "$PREVIOUS" "$SNAPSHOT" -aptly publish switch -gpg-key="$GPG_KEYID" -config=.aptly.conf "$CURRENT" "s3:$ENDPOINT:" "$SNAPSHOT" -# aptly publish switch -gpg-key="$GPG_KEYID" -config=.aptly.conf "$PREVIOUS" "s3:$ENDPOINT:" "$SNAPSHOT" +echo +echo "aptly.sh: Syncing local publish to s3" +/usr/bin/aws s3 sync ~/.aptly/public/pool/ s3://updates.signal.org/desktop/apt/pool/ +/usr/bin/aws s3 sync ~/.aptly/public/dists/ s3://updates.signal.org/desktop/apt/dists/ + +echo +echo "aptly.sh: Complete!"