Pulse/scripts/installtests
courtmanr@gmail.com 806cbe83dc
Some checks are pending
Build and Test / Secret Scan (push) Waiting to run
Build and Test / Frontend & Backend (push) Waiting to run
Canonical Governance / governance (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 1/8) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 2/8) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 3/8) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 4/8) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 5/8) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 6/8) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 7/8) (push) Waiting to run
Core E2E Tests / Playwright Core E2E (shard 8/8) (push) Waiting to run
Core E2E Tests / Agent registration lifecycle (push) Waiting to run
Core E2E Tests / E2E verdict (push) Blocked by required conditions
Unified Agent Native Verification / Linux ARM64 (push) Waiting to run
Unified Agent Native Verification / Linux x64 (push) Waiting to run
Unified Agent Native Verification / Windows x64 (push) Waiting to run
Unified Agent Native Verification / macOS ARM64 (push) Waiting to run
Unified Agent Native Verification / macOS Intel (push) Waiting to run
Unified Agent Native Verification / FreeBSD cross-build contract (push) Waiting to run
Fix auto-update leaving service down after installer failure
Two bugs from #1630 that combined to take installs down silently:

1. perform_update()'s install-failed rollback branch restored the backup
   but never restarted pulse.service. Since the generated
   pulse-update.service gates on ExecCondition=systemctl is-active,
   every later timer run was then skipped and the install stayed down
   until manual intervention. Restart is now guaranteed by a
   service_was_active-guarded restart in that branch plus an
   ensure_service_restarted RETURN trap so no exit path can miss it
   (re-fix of #1323, originally c0b3a0e66, lost in 778a2577b and only
   partially restored in 672e81985).

2. install.sh aborted under errexit when writing the /bin/update helper
   on a read-only filesystem - after the new binary was installed and
   the service stopped, landing in bug 1's no-restart branch. The stock
   pulse-update.service uses ProtectSystem=strict, so /bin and
   /usr/local/bin are read-only on stock unattended updates; transient
   read-only remounts hit the same path. The helper write, PATH
   appends, and the /usr/local/bin/pulse symlink are now idempotent and
   non-fatal with a warning (install_binary_symlink).

Contract: deployment-installability now pins fail-closed service
availability for unattended updates and non-fatal writes outside the
hardened unit's writable set, with proofs in pulse_auto_update_test.go
and root_install_sh_test.go plus shell regression coverage in
scripts/tests/test-pulse-auto-update.sh (installer-exits-nonzero path)
and scripts/tests/test-install-update-resilience.sh (read-only helper
and symlink paths, verified under set -e, root-safe via ENOTDIR).

Fixes #1630

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-27 09:38:37 +01:00
..
windowslifecycleserver Extract the transport-independent action lifecycle service 2026-07-10 11:06:55 +01:00
agent_state_dir_lifecycle_test.go Let --report-ip lead host identity and pass it through the installer 2026-07-22 00:49:43 +01:00
backfill_release_assets_test.go Add historical release asset backfill workflow 2026-04-22 17:25:58 +01:00
build_release_assets_test.go Authorize v6.1.2 unsigned Windows release exception 2026-07-26 21:07:47 +01:00
docker_entrypoint_test.go Refresh Pulse 6.1 RC1 mobile evidence 2026-07-13 19:41:41 +01:00
install_docker_sh_test.go Authorize v6.1.2 unsigned Windows release exception 2026-07-26 21:07:47 +01:00
install_ps1_test.go Reset ephemeral Windows state before native lifecycle proof 2026-07-26 20:51:21 +01:00
install_sh_test.go Guard agent installs against tight disks and rotate appliance agent logs 2026-07-26 20:16:05 +01:00
provider_msp_deploy_test.go Make the provider MSP portal honest and self-sufficient without an email provider 2026-07-10 11:22:57 +01:00
pulse_auto_update_test.go Fix auto-update leaving service down after installer failure 2026-07-27 09:38:37 +01:00
release_ldflags_test.go Require signed unified agent release assets 2026-04-22 02:00:29 +01:00
root_install_sh_test.go Fix auto-update leaving service down after installer failure 2026-07-27 09:38:37 +01:00
uninstall_sensor_proxy_test.go Prepare v6.0.0 release candidate 2026-06-04 14:07:14 +01:00
windows_agent_lifecycle.ps1 Extract the transport-independent action lifecycle service 2026-07-10 11:06:55 +01:00