13 Commits
Author SHA1 Message Date
Duy /zuey/andGitHub 3e7876a4b4 fix(ci): avoid zuey release asset race (#129) 2026-05-31 22:37:08 +07:00
Duy /zuey/andGitHub 64c02ea5a6 ci: speed up zuey beta deploy (#127)
* ci: speed up zuey beta deploy

* ci: mark issue 88 plan complete
2026-05-31 21:47:28 +07:00
Duy /zuey/andGitHub ff0b3dec56 fix(ci): ship bundled skills in release tarball
Squash merge PR #105 after validation.
2026-05-31 12:24:43 +07:00
Duy /zuey/andGitHub 1d75e38ac2 fix(ci): restrict zuey beta deploy repo
Squash merge PR #92 before the beta PR queue so dev push workflows use the corrected deploy repository guard.
2026-05-31 10:48:03 +07:00
Goon ea107aebc9 test(ci): guard semantic beta versioning 2026-05-29 10:10:07 +07:00
Goon a7b58c6933 fix(ci): push beta repair tags to origin 2026-05-29 09:35:14 +07:00
Duy /zuey/andGitHub 74930a1625 fix(ci): base64-encode zuey SSH key secret to dodge libcrypto error (#79)
* fix(ci): base64-encode zuey SSH key secret to dodge libcrypto error

First real deploy_zuey_beta run failed at the new 'Sync zuey ops scripts
to VPS' step with 'Load key: error in libcrypto' / Permission denied,
because GitHub Secrets storage normalized newlines inside the multi-line
PEM block.

Switch the secret to ZUEY_SSH_PRIVATE_KEY_B64 (single-line base64) and
base64 -d it on the runner. Single-line storage is immune to whitespace
mangling. Add a ssh-keygen -y -f pre-flight check that fails fast with
a clear remediation message if either the base64 or the decoded key is
malformed.

Refs: workflow run 26499549166

* fix(ci): create SSH key at 0600 from birth via umask 077

Defense-in-depth from review of PR #79: wrap the base64-decode pipeline
in a subshell that sets umask 077 so the decoded private key file is
created at 0600 directly, instead of relying on a chmod 0600 after the
fact (which left a brief 0644 window).
2026-05-27 17:59:08 +07:00
Goon 17845305dc feat(deploy): track zuey ops scripts in repo + CI auto-sync
- Move scripts/goclaw-upgrade-release.sh -> scripts/zuey/goclaw-upgrade-release.sh
- Add scripts/zuey/goclaw-deploy.sh (canonical source for /usr/local/bin/goclaw-deploy)
  with self-loop symlink guard fix: readlink -f ... 2>/dev/null || true + warn
  when previous resolves to empty. Without this, /opt/goclaw/current -> current
  aborts set -euo pipefail before ln -sfn fixes the symlink (observed 2026-05-27,
  silently failing every deploy_zuey_beta CI run).
- Wire Sync zuey ops scripts to VPS step in dev-beta-release.yaml:
  scp + sudo install both scripts before triggering gateway upgrade endpoint.
  Backup-if-changed via cmp -s; root:root 0755; bash -n syntax check; key shred.
  Gracefully skips with warning if ZUEY_SSH_PRIVATE_KEY or ZUEY_SUDO_PASS unset.
- Document required secrets and manual sync recipe in docs/deployment-guide.md.
- Changelog entry 2026-05-27.
2026-05-27 15:18:08 +07:00
Duy /zuey/andGitHub 8b661951c0 fix(deploy): detach gateway upgrades from service (#45) 2026-05-22 21:53:10 +07:00
Duy /zuey/andGitHub faa195156e feat(ci): deploy zuey beta releases (#40)
* feat(ci): deploy zuey beta releases

Add automatic zuey VPS deployment to the dev beta release workflow after prerelease assets are published. Publish beta checksums and make the host upgrade script tolerate beta asset naming and checksum fallback.

* fix(deploy): allow active beta release reruns

Treat an existing target release as success only when it is already the active release and still contains the expected binary and migrations. This keeps automated beta deploy reruns from failing after a prior successful deploy while preserving fail-closed behavior for stale or partial release directories.
2026-05-22 19:49:43 +07:00
Duy Nguyen 3084896dc3 fix(ci): publish beta release without checkout 2026-05-17 20:11:11 +07:00
Duy Nguyen d931dc04a3 fix(ci): allow ghcr-only beta releases 2026-05-17 18:57:54 +07:00
Duy Nguyen 9a6fd2dec9 feat(ci): automate dev beta releases 2026-05-17 18:36:13 +07:00