53 lines
1.5 KiB
Plaintext
53 lines
1.5 KiB
Plaintext
|
#!/bin/sh
|
||
|
# This script publishes Debian packages. When run by `mk`, it's
|
||
|
# run inside of an `ubuntu:20.04` container. It's fine also to run
|
||
|
# this script from a live Debian-like system as long as all the
|
||
|
# following assumptions are met:
|
||
|
#
|
||
|
# 1. Debian packages we want to publish are in the toplevel dir.
|
||
|
|
||
|
# ensure that we have all the required environment variables.
|
||
|
fail=0
|
||
|
if [ -z "$AWS_ACCESS_KEY_ID" ]; then
|
||
|
echo "warning: missing AWS_ACCESS_KEY_ID environment variable" 1>&2
|
||
|
fail=1
|
||
|
fi
|
||
|
if [ -z "$AWS_SECRET_ACCESS_KEY" ]; then
|
||
|
echo "warning: missing AWS_SECRET_ACCESS_KEY environment variable" 1>&2
|
||
|
fail=1
|
||
|
fi
|
||
|
if [ -z "$DEB_GPG_KEY" ]; then
|
||
|
echo "warning: missing DEB_GPG_KEY environment variable" 1>&2
|
||
|
fail=1
|
||
|
fi
|
||
|
if [ $fail -ne 0 ]; then
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
set -ex
|
||
|
|
||
|
export DEBIAN_FRONTEND=noninteractive
|
||
|
|
||
|
maybe_with_sudo() {
|
||
|
if command -v sudo 1>/dev/null; then
|
||
|
sudo "$@"
|
||
|
else
|
||
|
"$@"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# install the dependencies required by the uploader.
|
||
|
maybe_with_sudo apt-get update -q
|
||
|
maybe_with_sudo apt-get install --yes --no-install-recommends curl git make python3 python3-requests python3-gnupg s3cmd
|
||
|
|
||
|
# pull the latest version of the debops-ci script from ooni/sysadmin.
|
||
|
curl -fsSLO https://raw.githubusercontent.com/ooni/sysadmin/master/tools/debops-ci
|
||
|
chmod +x debops-ci
|
||
|
|
||
|
# loop over the available packages and upload.
|
||
|
for debpkg in *.deb; do
|
||
|
# for example: ooniprobe-cli_3.10.0_i386.deb
|
||
|
arch=$(echo "$debpkg" | awk -F_ '{print $3}' | sed 's/\.deb$//g')
|
||
|
./debops-ci --show-commands upload --bucket-name ooni-deb --arch "$arch" "$debpkg"
|
||
|
done
|