ci, install: update workflows, packaging scripts, and installer suite
Nightly Build / build (push) Successful in 6m43s
Nightly Build / build (push) Successful in 6m43s
Nightly/release workflows: matrix tweaks, artifact path fixes. Package-macos: streamline dmg build, codesigning improvements. Install scripts: rewrite install.sh and install-nightly.sh with robust error handling, add uninstall.sh, overhaul update.sh.
This commit is contained in:
+17
-10
@@ -90,19 +90,26 @@ fi
|
||||
echo "[package-macos] Uploading to ${REMOTE_HOST}..."
|
||||
|
||||
if [ "$MODE" = "release" ]; then
|
||||
# Create remote directory and copy tarball
|
||||
ssh "$REMOTE_HOST" "mkdir -p ${REMOTE_BASE}/releases/${VERSION}"
|
||||
scp dist/skald-circle-${VERSION}-darwin-arm64.tar.gz \
|
||||
"${REMOTE_HOST}:${REMOTE_BASE}/releases/${VERSION}/"
|
||||
TARBALL="skald-circle-${VERSION}-darwin-arm64.tar.gz"
|
||||
RDIR="${REMOTE_BASE}/releases/${VERSION}"
|
||||
ssh "$REMOTE_HOST" "mkdir -p ${RDIR}"
|
||||
|
||||
# Update LATEST pointer
|
||||
echo "$VERSION" | ssh "$REMOTE_HOST" "cat > ${REMOTE_BASE}/releases/LATEST"
|
||||
# Publish atomically: scp to a temp name, then rename over the target so a
|
||||
# concurrent download never sees a half-transferred tarball.
|
||||
scp "dist/${TARBALL}" "${REMOTE_HOST}:${RDIR}/.${TARBALL}.tmp"
|
||||
ssh "$REMOTE_HOST" "mv -f ${RDIR}/.${TARBALL}.tmp ${RDIR}/${TARBALL}"
|
||||
|
||||
# Flip LATEST atomically (write temp + rename) — clients read it to decide
|
||||
# whether to upgrade, so it must never be observed empty or partial.
|
||||
ssh "$REMOTE_HOST" "printf '%s\n' '${VERSION}' > ${REMOTE_BASE}/releases/.LATEST.tmp && mv -f ${REMOTE_BASE}/releases/.LATEST.tmp ${REMOTE_BASE}/releases/LATEST"
|
||||
echo "[package-macos] ✅ Release ${VERSION} deployed + LATEST updated."
|
||||
else
|
||||
# Nightly — copy into nightly/ directory
|
||||
ssh "$REMOTE_HOST" "mkdir -p ${REMOTE_BASE}/nightly"
|
||||
scp dist/skald-circle-nightly-darwin-arm64.tar.gz \
|
||||
"${REMOTE_HOST}:${REMOTE_BASE}/nightly/"
|
||||
# Nightly — atomic publish into nightly/ (fixed filename, reused each run).
|
||||
TARBALL="skald-circle-nightly-darwin-arm64.tar.gz"
|
||||
NDIR="${REMOTE_BASE}/nightly"
|
||||
ssh "$REMOTE_HOST" "mkdir -p ${NDIR}"
|
||||
scp "dist/${TARBALL}" "${REMOTE_HOST}:${NDIR}/.${TARBALL}.tmp"
|
||||
ssh "$REMOTE_HOST" "mv -f ${NDIR}/.${TARBALL}.tmp ${NDIR}/${TARBALL}"
|
||||
echo "[package-macos] ✅ Nightly deployed."
|
||||
fi
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# branch. Runs in the repo root after checkout.
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/verify-version.sh \
|
||||
# ./ci/verify-version.sh \
|
||||
# --builds-dir /var/www/builds.skaldagent.net
|
||||
#
|
||||
# Exit codes:
|
||||
|
||||
Reference in New Issue
Block a user