Skip to content

refactor: remove what only the legacy CLI used - #296

Merged
matt-richardson merged 29 commits into
mainfrom
mr/go-cli-leftovers
Nov 9, 2026
Merged

matt-richardson merged 29 commits into
mainfrom
mr/go-cli-leftovers

Conversation

@matt-richardson

@matt-richardson matt-richardson commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Merges into #276.

Some code only made sense while two CLIs shipped side by side:

  • Error classifier patterns that match .NET exception text from octo: "Unable to connect to … server", "The remote server returned an error: (50x)", "The remote name could not be resolved", "A connection attempt failed", "The Octopus server … is not available" and "(40x)". None of those strings appear in the source of the Go CLI or of go-octopusdeploy.
  • The 2.0 version folder. The bundled CLI sat under resources/cli/2.0/<os>-<arch>/, and extractCliTo took an octopusVersion argument. With one CLI, that folder selects nothing. The CLI is now at resources/cli/<os>-<arch>/.
  • extractsTheBundledCliWhateverOctopusVersionTheStepCarries, which passed for any octopus_version, because nothing reads that parameter any more.

Notes:

  • The HTTP status 40x/50x patterns stay. They don't appear in the Go CLI or go-octopusdeploy source either: the client reports most non-2xx responses as Octopus API error: … without a status code. It's worth checking what the Go CLI prints for a 502 or 503. If nothing matches, a gateway error isn't retried.
  • I checked the built agent jar: it holds the six archives under resources/cli/<os>-<arch>/.

🤖 Generated with Claude Code

APErebus and others added 19 commits October 20, 2026 12:21
The Go CLI archives are now downloaded at build time (#282). Drop the
committed cli/ archives and point downloadOctopusCli at resources/cli/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bring in the per-architecture Go CLI archives (#283). Port the
architecture lookup into cli/OctopusOsUtils and move its test into the
cli package.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…est (#286)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drops the error patterns that only matched octo's .NET output, the 2.0
version folder the bundled Go CLI sat under, and a test that passed
whatever octopus_version a step carried.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
matt-richardson and others added 8 commits October 30, 2026 10:06
…o-cli-default-space

# Conflicts:
#	e2e/src/test/java/octopus/teamcity/e2e/test/OctopusConnectionBuildInformationE2ETest.java
#	e2e/src/test/java/octopus/teamcity/e2e/test/OctopusPromoteReleaseNewCliE2ETest.java
#	e2e/src/test/java/octopus/teamcity/e2e/test/OctopusPushPackageE2ETest.java
#	octopus-agent/src/main/java/octopus/teamcity/agent/cli/CLIBuildProcess.java
#	octopus-agent/src/test/java/octopus/teamcity/agent/cli/CLIBuildProcessTest.java
#	octopus-common/src/main/java/octopus/teamcity/common/SpaceSelection.java
#	octopus-server/src/main/java/octopus/teamcity/server/PropertiesValidator.java
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Additional command line arguments reach the Go CLI unchanged. Steps
written for the legacy octo CLI can carry arguments the Go CLI rejects
with only "unknown flag"; the build log now says where the argument
came from.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The Go CLI is bundled for amd64 and arm64 only. Every runner reported
every agent as compatible, so a build could be sent to an agent whose
JVM architecture has no bundled CLI and fail when the step started.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…o-cli-default-space

# Conflicts:
#	octopus-agent/src/main/java/octopus/teamcity/agent/cli/CLIBuildProcess.java
…o-cli-leftovers

# Conflicts:
#	octopus-agent/src/main/java/octopus/teamcity/agent/cli/CLIBuildProcess.java
#	octopus-agent/src/test/java/octopus/teamcity/agent/cli/CLIBuildProcessTest.java
…/go-cli-leftovers

# Conflicts:
#	octopus-agent/src/test/java/octopus/teamcity/agent/cli/CLIBuildProcessTest.java
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Base automatically changed from ap/default-to-new-cli to main November 5, 2026 04:10
matt-richardson and others added 2 commits November 5, 2026 14:23
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	octopus-agent/src/test/java/octopus/teamcity/agent/cli/CLIBuildProcessTest.java
#	octopus-server/src/main/java/octopus/teamcity/server/OctopusDeployReleaseRunType.java
#	octopus-server/src/main/java/octopus/teamcity/server/PropertiesValidator.java
@matt-richardson
matt-richardson marked this pull request as ready for review November 9, 2026 03:40
@matt-richardson
matt-richardson merged commit 0982142 into main Nov 9, 2026
6 checks passed
@matt-richardson
matt-richardson deleted the mr/go-cli-leftovers branch November 9, 2026 03:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants