ci, install: update workflows, packaging scripts, and installer suite
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:
2026-07-22 15:11:17 +01:00
parent 4dddc7d2ab
commit 8407a949fc
8 changed files with 396 additions and 120 deletions
+14 -3
View File
@@ -85,11 +85,22 @@ jobs:
VERSION="${{ steps.extract-version.outputs.version }}"
TARGET="/var/www/builds.skaldagent.net/releases/${VERSION}"
mkdir -p "$TARGET"
cp dist/*.tar.gz "$TARGET/"
# Publish each tarball atomically (temp name + rename) so a client can
# never fetch a half-written file.
for f in dist/*.tar.gz; do
name="$(basename "$f")"
cp "$f" "$TARGET/.$name.tmp"
mv -f "$TARGET/.$name.tmp" "$TARGET/$name"
done
echo "[release] Deployed $VERSION:"
ls -lh "$TARGET/"
- name: Update latest version pointer
run: |
echo "${{ steps.extract-version.outputs.version }}" > /var/www/builds.skaldagent.net/releases/LATEST
echo "[release] Updated releases/LATEST → ${{ steps.extract-version.outputs.version }}"
VERSION="${{ steps.extract-version.outputs.version }}"
DEST=/var/www/builds.skaldagent.net/releases
# Flip LATEST atomically — install.sh/update.sh read it to decide
# whether to upgrade, so it must never be observed empty or partial.
printf '%s\n' "$VERSION" > "$DEST/.LATEST.tmp"
mv -f "$DEST/.LATEST.tmp" "$DEST/LATEST"
echo "[release] Updated releases/LATEST → $VERSION"