fix(jenkins): cache provision downloads by github digest
This commit is contained in:
@@ -10,6 +10,7 @@ OTELCOL_ARCHIVE_PATH="${OTELCOL_ARCHIVE_PATH:-}"
|
||||
SPACETIME_INSTALLER_URL="${SPACETIME_INSTALLER_URL:-https://install.spacetimedb.com}"
|
||||
SPACETIME_DOWNLOAD_ROOT="${SPACETIME_DOWNLOAD_ROOT:-https://github.com/clockworklabs/SpacetimeDB/releases/latest/download}"
|
||||
SPACETIME_TARGET_HOST="${SPACETIME_TARGET_HOST:-x86_64-unknown-linux-gnu}"
|
||||
SPACETIME_ARCHIVE_PATH="${SPACETIME_ARCHIVE_PATH:-}"
|
||||
SPACETIME_INSTALLER_PATH="${SPACETIME_INSTALLER_PATH:-}"
|
||||
SPACETIME_UPDATE_INSTALLER_PATH="${SPACETIME_UPDATE_INSTALLER_PATH:-}"
|
||||
PROVISION_DOWNLOAD_PROXY="${PROVISION_DOWNLOAD_PROXY:-}"
|
||||
@@ -135,6 +136,9 @@ prepare_spacetime() {
|
||||
local tmp_dir="$1"
|
||||
local install_root="${tmp_dir}/spacetime-root"
|
||||
local target_dir="${PROVISION_TOOLS_DIR}/spacetime"
|
||||
local archive_name="spacetime-${SPACETIME_TARGET_HOST}.tar.gz"
|
||||
local downloaded_archive="${PROVISION_DOWNLOADS_DIR}/${archive_name}"
|
||||
local source_archive=""
|
||||
local update_name="spacetimedb-update-${SPACETIME_TARGET_HOST}"
|
||||
local downloaded_update="${PROVISION_DOWNLOADS_DIR}/${update_name}"
|
||||
local source_update=""
|
||||
@@ -143,17 +147,31 @@ prepare_spacetime() {
|
||||
local source_installer=""
|
||||
|
||||
mkdir -p "${install_root}"
|
||||
if [[ -n "${SPACETIME_UPDATE_INSTALLER_PATH}" && -f "${SPACETIME_UPDATE_INSTALLER_PATH}" ]]; then
|
||||
if [[ -n "${SPACETIME_ARCHIVE_PATH}" && -f "${SPACETIME_ARCHIVE_PATH}" ]]; then
|
||||
source_archive="${SPACETIME_ARCHIVE_PATH}"
|
||||
elif [[ -n "${PROVISION_DOWNLOADS_DIR}" && -f "${downloaded_archive}" ]]; then
|
||||
source_archive="${downloaded_archive}"
|
||||
fi
|
||||
|
||||
if [[ -n "${source_archive}" ]]; then
|
||||
echo "[prepare-provision-tools] 使用已下载的 SpacetimeDB release tarball: ${source_archive}"
|
||||
mkdir -p "${install_root}/bin/current"
|
||||
tar -xzf "${source_archive}" -C "${install_root}/bin/current"
|
||||
chmod 0755 "${install_root}/bin/current/spacetimedb-cli" "${install_root}/bin/current/spacetimedb-standalone"
|
||||
SPACETIME_SOURCE_DESCRIPTION="local archive ${source_archive}"
|
||||
elif [[ -n "${SPACETIME_UPDATE_INSTALLER_PATH}" && -f "${SPACETIME_UPDATE_INSTALLER_PATH}" ]]; then
|
||||
source_update="${SPACETIME_UPDATE_INSTALLER_PATH}"
|
||||
elif [[ -n "${PROVISION_DOWNLOADS_DIR}" && -f "${downloaded_update}" ]]; then
|
||||
source_update="${downloaded_update}"
|
||||
fi
|
||||
if [[ "${PROVISION_REQUIRE_LOCAL_DOWNLOADS}" == "true" && -z "${source_update}" ]]; then
|
||||
echo "[prepare-provision-tools] 要求使用 Windows 已下载的 SpacetimeDB Linux update installer,但未找到: ${downloaded_update}" >&2
|
||||
if [[ "${PROVISION_REQUIRE_LOCAL_DOWNLOADS}" == "true" && -z "${source_archive}" ]]; then
|
||||
echo "[prepare-provision-tools] 要求使用 Windows 已下载的 SpacetimeDB release tarball,但未找到: ${downloaded_archive}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n "${source_update}" ]]; then
|
||||
if [[ -n "${source_archive}" ]]; then
|
||||
:
|
||||
elif [[ -n "${source_update}" ]]; then
|
||||
echo "[prepare-provision-tools] 使用已下载的 SpacetimeDB Linux update installer: ${source_update}"
|
||||
cp "${source_update}" "${prepared_update}"
|
||||
chmod 0755 "${prepared_update}"
|
||||
@@ -205,6 +223,7 @@ main() {
|
||||
require_cmd install
|
||||
require_cmd mktemp
|
||||
require_cmd rm
|
||||
require_cmd tar
|
||||
|
||||
validate_relative_dir "PROVISION_TOOLS_DIR" "${PROVISION_TOOLS_DIR}"
|
||||
validate_relative_dir "PROVISION_DOWNLOADS_DIR" "${PROVISION_DOWNLOADS_DIR}"
|
||||
|
||||
Reference in New Issue
Block a user