docs/runbooks/cicd.md documents two ways to skip the 6-hour auto-update poll after tagging a release. Neither works. Hit while deploying v0.4.35.
hydrastreamingmonitor update --force does not exist$ ssh root@78.47.174.83 "hydrastreamingmonitor update --force"
Error: unknown command "update" for "hydrastreamingmonitor"
The binary only registers serve and version (internal/cli/root.go:23-24). There is no update command to run. The runbook calls this the preferred method.
systemctl restart does not pick up a new release eitherThe runbook hedges that restart "will only pick up a new binary if the auto-updater had already downloaded it to disk" — but in practice a restart will never have done so, because the updater sleeps before its first check:
// hydrarelease@v1.16.8/pkg/updater/updater.go:248-253
func (u *Updater) StartAutoCheck(interval time.Duration, autoApply bool) {
go func() {
for {
time.Sleep(interval) // <-- sleeps FIRST
info, err := u.CheckForUpdate()
serve.go:40 calls StartAutoCheck(6*time.Hour, true), so the first update check happens 6 hours after process start. A freshly restarted service has, by construction, never checked. Restarting therefore resets the 6h clock and guarantees the new binary is not applied.
Install the binary by hand:
curl -fsSL -o /tmp/hsm.new \
https://releases.experiencenet.com/hydrastreamingmonitor/production/v0.4.35/hydrastreamingmonitor-linux-amd64
chmod +x /tmp/hsm.new && install -m 0755 /tmp/hsm.new /usr/local/bin/hydrastreamingmonitor
systemctl restart hydrastreamingmonitor
(Note the release-server path is /{project}/{channel}/{version}/{binary} — the runbook does not document the download URL at all.)
Either add a real update command to the CLI (matching what the runbook already promises), or have StartAutoCheck check once immediately before entering the sleep loop, so that a systemctl restart becomes a genuine deploy trigger. The latter is a one-line change in hydrarelease and would make the documented procedure true. Until then, fix cicd.md to describe the manual install above.
Related: #382 (CI-triggerable update endpoint).