Fix auto-update pipeline bugs discovered in e2e testing

- Fix container-to-host path mapping in trigger.json (stagingDir
  was using container path /app/updates/ instead of host path
  /opt/dashcaddy/updates/)
- Fix download race condition: primary download's async unlink
  could delete mirror download's file — use unlinkSync before retry
- Fix DASHCADDY_COMMIT build arg not passed to docker compose build
  (was set as env var, now uses --build-arg)
- Remove MakeDirectory=yes from systemd path unit (was creating
  trigger.json as directory instead of file)
- Remove unused 'tar' npm module import
- Add mirror fallback for tarball downloads (not just version checks)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 03:32:08 -08:00
parent ffa6966fd3
commit 2d1944fd55
4 changed files with 25 additions and 9 deletions

View File

@@ -162,7 +162,7 @@ main() {
# Step 3: Rebuild container
log "Step 3: Building new container image"
cd "$compose_dir"
if ! DASHCADDY_COMMIT="$commit" docker compose build --quiet 2>&1; then
if ! docker compose build --build-arg DASHCADDY_COMMIT="$commit" --quiet 2>&1; then
log "ERROR: docker compose build failed, rolling back"
restore_backup "$api_dir" "$from_version"
local elapsed=$(( $(date +%s) - start_time ))