Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
252 changes: 175 additions & 77 deletions .github/workflows/e2e.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ background process on port 8080.
**Flags:**
- `--port` - Port to run the server on (default: 8080)
- `--foreground`, `-f` - Run in the foreground instead of daemonizing
- `--version` - Server version to download and run (default: `latest`, e.g. `3.21.23`)
- `--version` - Server version to download and run (default: `latest`, e.g. `3.32.0`)
- `--oss` - Use the open-source Conductor server (default)
- `--orkes` - Use the Orkes Conductor server (coming soon)
- `--follow`, `-f` - Follow log output like `tail -f` (logs command)
Expand Down
8 changes: 8 additions & 0 deletions CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ A Conductor server that the CLI downloads and runs as a background process on th
user's machine for development and testing.
_Avoid_: embedded server, dev server, test server

**Server Version**:
Which published Conductor artifact a Local server runs, named by a version string
or by the floating `latest` tag. Orthogonal to Server type: it selects an artifact,
not a distribution. Only versions the download bucket actually carries can be named
— it holds a subset of the server repo's tags.
_Avoid_: version (unqualified — the CLI has its own), distribution (already names
OSS versus Orkes), server build

### Configuration

**Profile**:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ conductor server <command> [flags]
conductor server start

# Start specific version on custom port
conductor server start --version 3.21.23 --port 9090
conductor server start --version 3.32.0 --port 9090

# Run in foreground
conductor server start -f
Expand Down
11 changes: 6 additions & 5 deletions cmd/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ import (

const (
// OSS Conductor server download URL template
// Version is substituted: "latest" or specific version like "3.21.23"
// Version is substituted: "latest" or specific version like "3.32.0". The bucket
// carries a subset of the server repo's tags, so not every tag resolves here.
ossJarURLTemplate = "https://conductor-server.s3.us-east-2.amazonaws.com/conductor-server-%s.jar"

// Orkes Conductor server download URL template (TBD)
Expand Down Expand Up @@ -93,7 +94,7 @@ Examples:
conductor server start

# Start with specific version
conductor server start --version 3.21.23
conductor server start --version 3.32.0

# Start on a different port
conductor server start --port 9090
Expand Down Expand Up @@ -143,7 +144,7 @@ Examples:
conductor server update

# Update a specific version
conductor server update --version 3.21.23`,
conductor server update --version 3.32.0`,
RunE: updateServer,
SilenceUsage: true,
}
Expand Down Expand Up @@ -1039,7 +1040,7 @@ func init() {
// Start command flags
serverStartCmd.Flags().Int("port", defaultPort, "Port to run the server on")
serverStartCmd.Flags().BoolP("foreground", "f", false, "Run server in foreground (don't daemonize)")
serverStartCmd.Flags().String("version", "latest", "Server version to download and run (e.g., 'latest', '3.21.23')")
serverStartCmd.Flags().String("version", "latest", "Server version to download and run (e.g., 'latest', '3.32.0')")
serverStartCmd.Flags().Bool("oss", false, "Use open-source Conductor server (default)")
serverStartCmd.Flags().Bool("orkes", false, "Use Orkes Conductor server (coming soon)")
serverStartCmd.MarkFlagsMutuallyExclusive("oss", "orkes")
Expand All @@ -1049,7 +1050,7 @@ func init() {
serverLogsCmd.Flags().IntP("lines", "n", 50, "Number of lines to show")

// Update command flags
serverUpdateCmd.Flags().String("version", "latest", "Server version to update (e.g., 'latest', '3.21.23')")
serverUpdateCmd.Flags().String("version", "latest", "Server version to update (e.g., 'latest', '3.32.0')")
serverUpdateCmd.Flags().Bool("oss", false, "Use open-source Conductor server (default)")
serverUpdateCmd.Flags().Bool("orkes", false, "Use Orkes Conductor server (coming soon)")
serverUpdateCmd.MarkFlagsMutuallyExclusive("oss", "orkes")
Expand Down
27 changes: 24 additions & 3 deletions docs/adr/0002-e2e-builds-the-conductor-server-from-source.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
---
status: accepted
status: superseded
---

# E2E builds the Conductor server from source rather than pinning a published version

> **Superseded by
> [ADR-0006](./0006-e2e-pins-a-published-server-version.md).** The blocker
> below — that no artifact is published from `main` — expired when `3.32.0` GA shipped
> and the S3 `latest` jar was republished to match it. E2E now pins a published Server
> Version and runs the OSS-safe suite against it. Read this ADR as the recorded case
> for source-building, not as current policy; ADR-0006 explains how to recover the
> arrangement it describes.

The E2E jobs check out `conductor-oss/conductor` at `main` and run
`:conductor-server:bootJar`, instead of pinning a published version via
`conductor server start --version <x>`. We chose this because releases are cut from
Expand Down Expand Up @@ -69,8 +77,21 @@ Any of these should prompt switching back to a pin:

The workflow keeps a single knob for this: `CONDUCTOR_SERVER_REF`. Reverting means
replacing the checkout-and-build steps with `conductor server start --version <x>`,
which the earlier revision of #106 already implemented, so the change is recoverable
from git history rather than needing redesign.
which commit `cf9d6b8c` already implements — `CONDUCTOR_SERVER_VERSION`, an
`actions/cache` keyed on it, and the `server start` invocation, for both server-backed
jobs.

That commit is **not reachable from `main`**: #106 was squash-merged, so
`git log -S'server start --version'` finds nothing. Fetch it with
`git fetch origin refs/pull/106/head`, or read the file directly:

```
gh api "repos/conductor-oss/conductor-cli/contents/.github/workflows/e2e.yml?ref=cf9d6b8c"
```

Pinning also restores coverage rather than only saving time: with `conductor server
start` managing the server there is a CLI-managed pid file again, so the six
`server.bats` tests that currently skip will run.

## Alternatives considered

Expand Down
Loading
Loading