Check out with git rather than actions/checkout
Deploy HEOS panel / deploy (push) Failing after 0s

actions/checkout is a JavaScript action, so a host-mode runner needs node
on its PATH to run it and fails with "Cannot find: node in PATH" without
one. Every step is plain shell now, which needs nothing of the runner
beyond git, python3, rsync and curl.

The clone is shallow and takes its URL from the live checkout's remote, so
there is no URL or token in the workflow. It works because the runner
already has to run as the user that owns that checkout.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 23:35:29 +02:00
co-authored by Claude Opus 5
parent ffb1447209
commit 4cff820070
2 changed files with 32 additions and 5 deletions
+9 -2
View File
@@ -103,8 +103,15 @@ restarts the service and waits for the panel to answer again.
It needs a runner **in host mode on the machine that serves the panel**,
registered with the label `heos` (`runs-on:` must match, or the job queues
forever), running as the user that owns the directory. Restarting needs
one sudoers line:
forever), running as the user that owns the directory.
Every step is plain shell. `actions/checkout` is a JavaScript action, and a
host-mode runner can only run those with `node` on its PATH — swapping the
clone back for it brings back `Cannot find: node in PATH`. The clone takes
its URL from the live checkout's own remote, so no URL or token is written
down here.
Restarting needs one sudoers line:
```bash
echo 'franzz ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart heos-panel' \