32 lines
1.4 KiB
Bash
Executable File
32 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
source /opt/rustbox-package-builder/scripts/lib.sh
|
|
: "${SOURCE_REPO:?SOURCE_REPO required}"
|
|
: "${REPOSITORY_URL:?REPOSITORY_URL required}"
|
|
: "${SOURCE_BRANCH:=master}"
|
|
: "${POLL_INTERVAL:=300}"
|
|
: "${REPO_DISTRIBUTION:=stable}"
|
|
: "${REPO_COMPONENT:=main}"
|
|
: "${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
|
|
mkdir -p "$DATA_DIR"/{state,repository,work,cargo,packages} /tmp/rustbox-gnupg
|
|
chmod 0700 /tmp/rustbox-gnupg
|
|
export GNUPGHOME=/tmp/rustbox-gnupg
|
|
GPG_PRIVATE_KEY_FILE=/run/secrets/gpg/private-key.asc
|
|
[[ -s "$GPG_PRIVATE_KEY_FILE" ]] || fatal "missing GPG private key: $GPG_PRIVATE_KEY_FILE"
|
|
gpg --batch --import "$GPG_PRIVATE_KEY_FILE" >/dev/null 2>&1
|
|
GPG_KEY_ID=$(gpg --batch --with-colons --list-secret-keys | awk -F: '/^sec:/ {seen=1; next} seen && /^fpr:/ {print $10; exit}')
|
|
[[ -n "$GPG_KEY_ID" ]] || fatal "cannot resolve GPG signing key"
|
|
export GPG_PRIVATE_KEY_FILE GPG_KEY_ID
|
|
/opt/rustbox-package-builder/scripts/init-storage.sh
|
|
while true; do
|
|
if ! /opt/rustbox-package-builder/scripts/check-and-build.sh; then
|
|
log "build cycle failed; retrying after ${POLL_INTERVAL}s"
|
|
fi
|
|
sleep "$POLL_INTERVAL"
|
|
done
|