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:
@@ -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' \
|
||||
|
||||
Reference in New Issue
Block a user