fix(install): do not kill PowerShell host under 'irm | iex' #1

Merged
fourbroad merged 1 commits from workflow/bugfix/install-exit-kills-iex-host into main 2026-07-02 09:54:18 +08:00
Owner

The Windows installer used 'exit' inside Install-Octopus. When run via
'irm | iex' (the documented one-liner), there is no script scope, so
'exit' terminates the entire PowerShell host process and closes the terminal
window instead of just ending the install. Most users hit this via the
'already installed' branch (exit 0).

Replace 'exit' with:

  • 'return' for the success (already-installed) path
  • 'throw' for error paths (still non-zero exit when run as .\install.ps1
    in CI; prints the error and returns to the prompt under iex)

Add tests/test.ps1 as a regression guard (source-verification + a behavioral
test proving iex no longer terminates the host).

The Windows installer used 'exit' inside Install-Octopus. When run via 'irm <url> | iex' (the documented one-liner), there is no script scope, so 'exit' terminates the entire PowerShell host process and closes the terminal window instead of just ending the install. Most users hit this via the 'already installed' branch (exit 0). Replace 'exit' with: - 'return' for the success (already-installed) path - 'throw' for error paths (still non-zero exit when run as .\install.ps1 in CI; prints the error and returns to the prompt under iex) Add tests/test.ps1 as a regression guard (source-verification + a behavioral test proving iex no longer terminates the host).
fourbroad added 1 commit 2026-07-02 09:54:14 +08:00
The Windows installer used 'exit' inside Install-Octopus. When run via
'irm <url> | iex' (the documented one-liner), there is no script scope, so
'exit' terminates the entire PowerShell host process and closes the terminal
window instead of just ending the install. Most users hit this via the
'already installed' branch (exit 0).

Replace 'exit' with:
  - 'return' for the success (already-installed) path
  - 'throw' for error paths (still non-zero exit when run as .\install.ps1
    in CI; prints the error and returns to the prompt under iex)

Add tests/test.ps1 as a regression guard (source-verification + a behavioral
test proving iex no longer terminates the host).
fourbroad merged commit e79718a5fb into main 2026-07-02 09:54:18 +08:00
fourbroad deleted branch workflow/bugfix/install-exit-kills-iex-host 2026-07-02 09:54:55 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Octopus/octopus-release#1