#!/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}" : "${RELEASE_RETENTION:=10}" 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 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