honcho: plugin web pages with i18n, defer plugin detail to custom admin page
Nightly Build / build (push) Failing after 6m13s
Nightly Build / build (push) Failing after 6m13s
This commit is contained in:
Executable
+117
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env sh
|
||||
# Build, package, and deploy Skald Circle for macOS (ARM64).
|
||||
#
|
||||
# Usage: ./ci/package-macos.sh
|
||||
#
|
||||
# Behaviour depends on the current git branch:
|
||||
# release → builds a release tarball, checks version uniqueness, uploads + updates LATEST
|
||||
# main → builds a nightly tarball, uploads to nightly/ (no version check)
|
||||
# other → aborts with an error
|
||||
#
|
||||
# Prerequisites:
|
||||
# - macOS ARM64 (Apple Silicon)
|
||||
# - SSH alias "skaldserver" configured in ~/.ssh/config pointing to the builds host
|
||||
# - ssh + scp working to skaldserver (key-based auth)
|
||||
# - ci/package.sh, ci/verify-version.sh in the repo
|
||||
|
||||
set -eu
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
# ── Config ──────────────────────────────────────────────────────────────────
|
||||
REMOTE_HOST="skaldserver"
|
||||
REMOTE_BASE="/var/www/builds.skaldagent.net"
|
||||
BUILDS_URL="https://builds.skaldagent.net"
|
||||
|
||||
# ── Detect branch ────────────────────────────────────────────────────────────
|
||||
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
||||
echo "[package-macos] Branch: ${BRANCH}"
|
||||
|
||||
case "$BRANCH" in
|
||||
release)
|
||||
MODE="release"
|
||||
;;
|
||||
main)
|
||||
MODE="nightly"
|
||||
;;
|
||||
*)
|
||||
echo "[package-macos] ❌ Aborting: must be on 'release' or 'main' branch (current: ${BRANCH})"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# ── Version ──────────────────────────────────────────────────────────────────
|
||||
if [ "$MODE" = "release" ]; then
|
||||
VERSION="v$(grep '^version ' Cargo.toml | head -1 | sed 's/.*"\(.*\)"/\1/')"
|
||||
echo "[package-macos] Release version: ${VERSION}"
|
||||
else
|
||||
VERSION="nightly"
|
||||
echo "[package-macos] Nightly build"
|
||||
fi
|
||||
|
||||
# ── Verify version is new (release only) ────────────────────────────────────
|
||||
if [ "$MODE" = "release" ]; then
|
||||
echo "[package-macos] Checking if release ${VERSION} already exists on remote..."
|
||||
REMOTE_DIR_URL="${BUILDS_URL}/releases/${VERSION}/"
|
||||
if curl -I --fail --silent --output /dev/null "$REMOTE_DIR_URL" 2>/dev/null; then
|
||||
echo "[package-macos] ❌ Release ${VERSION} already exists at ${REMOTE_DIR_URL}"
|
||||
echo "[package-macos] Bump the version in Cargo.toml before releasing."
|
||||
exit 1
|
||||
fi
|
||||
echo "[package-macos] ✅ Release ${VERSION} is new — proceeding."
|
||||
fi
|
||||
|
||||
# ── Build ────────────────────────────────────────────────────────────────────
|
||||
echo "[package-macos] Building (this will take a while)..."
|
||||
cargo build --release
|
||||
cargo build --release -p skald-setup
|
||||
echo "[package-macos] ✅ Build complete."
|
||||
|
||||
# ── Package ──────────────────────────────────────────────────────────────────
|
||||
echo "[package-macos] Packaging..."
|
||||
mkdir -p dist
|
||||
if [ "$MODE" = "release" ]; then
|
||||
./ci/package.sh \
|
||||
--version "$VERSION" \
|
||||
--os darwin \
|
||||
--arch arm64 \
|
||||
--target-dir target/release \
|
||||
--output dist/
|
||||
else
|
||||
./ci/package.sh \
|
||||
--version nightly \
|
||||
--os darwin \
|
||||
--arch arm64 \
|
||||
--target-dir target/release \
|
||||
--output dist/
|
||||
fi
|
||||
|
||||
# ── Upload via SCP ───────────────────────────────────────────────────────────
|
||||
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}/"
|
||||
|
||||
# Update LATEST pointer
|
||||
echo "$VERSION" | ssh "$REMOTE_HOST" "cat > ${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/"
|
||||
echo "[package-macos] ✅ Nightly deployed."
|
||||
fi
|
||||
|
||||
# ── Summary ──────────────────────────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "[package-macos] ─────────────────────────────────────────────"
|
||||
echo "[package-macos] Mode: ${MODE}"
|
||||
echo "[package-macos] Version: ${VERSION}"
|
||||
echo "[package-macos] Branch: ${BRANCH}"
|
||||
echo "[package-macos] Remote: ${REMOTE_HOST}"
|
||||
echo "[package-macos] ─────────────────────────────────────────────"
|
||||
echo "[package-macos] ✅ Done."
|
||||
Reference in New Issue
Block a user