38 lines
3.1 KiB
YAML
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"
|