My-Weekly-ToDo-List/scripts/my-weekly-todo-update.service
mARTin-B78 9d4e40e4e3
Some checks are pending
Playwright Tests / test (push) Waiting to run
fix: make the boot update actually fail loudly and survive long builds
The "update on reboot" unit silently did nothing useful. boot-update.sh piped
every command into tee, so `set -e` only saw tee's exit status: a failed
npm install or build left a half-built tree and still logged "Boot update
finished". It also used npm install (rewrites package-lock.json, so the next
git pull aborts), had no GIT_TERMINAL_PROMPT=0, and was not wrapped in a
function even though git pull rewrites it mid-run.

The unit's TimeoutStartSec=300 was the other half: npm ci + prisma generate +
next build takes far longer than 5 minutes in the container, so systemd
SIGTERMed the oneshot mid-install and left a node_modules tree npm could no
longer remove (ENOTEMPTY on rmdir node_modules/date-fns/isEqual).

Also resyncs package-lock.json with package.json, missed in the 1.115.0 commit.

v1.115.1

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 13:27:11 +02:00

22 lines
775 B
Desktop File

[Unit]
Description=My Weekly ToDo List - Boot Update (git pull + build)
After=network-online.target
Wants=network-online.target
Before=pm2-root.service
[Service]
Type=oneshot
ExecStart=/bin/bash /root/My-Weekly-ToDo-List/scripts/boot-update.sh
WorkingDirectory=/root/My-Weekly-ToDo-List
Environment=HOME=/root
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
StandardOutput=journal+console
StandardError=journal+console
# npm ci + prisma generate + next build in this container takes well over the old 300s.
# systemd SIGTERMs a Type=oneshot unit at the timeout, which used to kill npm mid-install
# and leave a node_modules tree that npm could no longer clean up (ENOTEMPTY on rmdir).
TimeoutStartSec=1800
[Install]
WantedBy=multi-user.target