Files
esh-pfi-infrastructure/playbooks/svos-releases/nh3-svos-15c2d04-v0.0.17-stage.yaml
T

38 lines
3.1 KiB
YAML

# nh3-svos: STAGE SVOS v0.0.17 (15c2d04) beside the live release. Installs into /opt/svos/releases/15c2d04 and runs the
# new kernel's check-config against the live configuration. Does NOT switch current, stop or start anything.
# svos-dev's ask (thread 01M595YP8R62Y665C38MHPH6YX); Prime's "deploy now" 2235 2026-10-18. Kernel 0.0.17, terminal 0.0.6
# (nh3-svos keeps it installed, unused), UI 0.0.21; everything else carried from b51aa5e. The cutover is
# nh3-svos-15c2d04-v0.0.17.yaml. The runtimes edit script is staged here too and dry-run against a copy of the live file.
steps:
- name: Private staging dir
shell: install -d -m 0700 /tmp/svos-stage-15c2d04
- {name: stage release, upload: {src: /tmp/claude-1000/-home-lkraven-development-eshpfi-management/e0be18fd-0734-4786-b933-904f0a74d2a2/scratchpad/svos-15c2d04/svos-release-15c2d04.tar.gz, dest: /tmp/svos-stage-15c2d04/release.tar.gz, mode: "0644"}}
- {name: stage uv, upload: {src: /home/lkraven/bin/uv, dest: /tmp/svos-stage-15c2d04/uv, mode: "0755"}}
- {name: stage installer, upload: {src: /tmp/claude-1000/-home-lkraven-development-eshpfi-management/e0be18fd-0734-4786-b933-904f0a74d2a2/scratchpad/svos-15c2d04/install-release.py, dest: /tmp/svos-stage-15c2d04/install-release.py, mode: "0644"}}
- {name: stage runtimes edit, upload: {src: /tmp/claude-1000/-home-lkraven-development-eshpfi-management/e0be18fd-0734-4786-b933-904f0a74d2a2/scratchpad/svos-15c2d04/u17-runtimes-edit.py, dest: /tmp/svos-stage-15c2d04/u17-runtimes-edit.py, mode: "0644"}}
- name: Verify staged hashes
shell: cd /tmp/svos-stage-15c2d04 && printf '%s %s\n' f6e4ff1e49f98482afad510bb591c9ebc9087ec792677b6190c1839f2939b2b2 release.tar.gz 83aa128da93e168283ed32cf75cd819fe17b135b3fc1f7ccb3c912eec198d9fb uv 53bb68360eedbd8694ea89d9212c2eea80027655991a0bc7bf690ad76d18a217 u17-runtimes-edit.py | sha256sum -c -
changed_when: "false"
- name: Install release 15c2d04 beside the live one (current NOT switched)
sudo: true
shell: python3 /tmp/svos-stage-15c2d04/install-release.py
creates: /opt/svos/releases/15c2d04/apps-env/pyvenv.cfg
verify:
- name: New kernel 0.0.17 accepts the live configuration as it is
sudo: true
shell: runuser -u svc-svos -- /opt/svos/releases/15c2d04/kernel-env/bin/svos-kernel check-config --data-root /var/lib/svos
changed_when: "false"
- name: Dry run of the runtimes edit on a private copy (the live file is not touched); the result parses as TOML
sudo: true
shell: |
set -e
d=$(mktemp -d); cp -p /var/lib/svos/config/instance.toml $d/instance.toml
sed "s#/var/lib/svos/config/instance.toml#$d/instance.toml#" /tmp/svos-stage-15c2d04/u17-runtimes-edit.py > $d/edit.py
python3 $d/edit.py
python3 -c "import tomllib,sys; c=tomllib.load(open(sys.argv[1],'rb')); r=c['seats']['runtimes']; print([(x['name'], x.get('window'), bool(x.get('prompt')), bool(x.get('working'))) for x in r])" $d/instance.toml
diff /var/lib/svos/config/instance.toml $d/instance.toml | grep -c '^>' ; rm -rf $d
changed_when: "false"
- name: current still points at the live release
shell: readlink /opt/svos/current
changed_when: "false"