Skip to content

Export the agent e2e suite as a release bundle for downstream repos - #134

Merged
ling-senpeng13 merged 1 commit into
mainfrom
feature/export-agent-e2e-bundle
Jul 21, 2026
Merged

Export the agent e2e suite as a release bundle for downstream repos#134
ling-senpeng13 merged 1 commit into
mainfrom
feature/export-agent-e2e-bundle

Conversation

@ling-senpeng13

@ling-senpeng13 ling-senpeng13 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

What

Packages the agent e2e suite (e2e/) into a self-contained, version-stamped tarball — conductor-ai-e2e-typescript-<version>.tar.gz — attached to every GitHub release, so downstream repos (e.g. orkes-io/orkes-conductor) can pin the e2e suite to the exact javascript-sdk release they run against. Replaces the agentspan-sdk-e2e-typescript-* bundles formerly cut from agentspan-ai/agentspan (whose pinned conductor-agent-sdk npm package was never published, so they couldn't run). Mirrors conductor-oss/java-sdk#128.

  • scripts/package-e2e-bundle.sh — stages e2e/ verbatim (suites already import by package name, so no rewriting) + a standalone package.json pinning @io-orkes/conductor-javascript@<version> from npm + a jest config with no src aliases (the published package must resolve) + run.sh + README. isolatedModules: true keeps ts-jest transpile-only, matching the repo root tsconfig — suites dynamically import optional provider SDKs inside try/catch and skip when absent.
  • scripts/test-package-e2e-bundle.sh — static validator (file parity, version pin, no src aliases, junit reporter wired; no network).
  • .github/workflows/release-agent-e2e-bundle.yml — packages, validates, generates sha256 sidecars, uploads to the release; same triggers as release.yml, plus workflow_dispatch to attach bundles to existing releases (first target: v4.0.0-rc1).

Validation

  • static validator green
  • bundle installs the published @io-orkes/conductor-javascript@4.0.0-rc1 from npm and resolves the /agents subpath export
  • full bundle run vs conductor-oss 3.32.0-rc.8 (real LLM calls): 25 suites — 23 passed, 2 skipped (optional-service suites skip gracefully), 0 failed after adding zod-to-json-schema to the bundle devDeps (the SDK's tool() Zod→JSON-Schema fallback needs it with zod v3)

…eam repos

Package the agent e2e suite (e2e/) into a self-contained, version-stamped
tarball (conductor-ai-e2e-typescript-<version>.tar.gz) attached to GitHub
releases, so downstream repos (e.g. orkes-io/orkes-conductor) can pin the
suite to the exact javascript-sdk release they run against. Replaces the
agentspan-sdk-e2e-typescript bundles formerly cut from agentspan-ai/agentspan.
Mirrors conductor-oss/java-sdk's conductor-ai-e2e/release/ export.

- scripts/package-e2e-bundle.sh: stages e2e/ verbatim (suites already import
  by package name) + standalone package.json pinning
  @io-orkes/conductor-javascript@<version> from npm + jest config with NO
  src aliases + run.sh + README
- scripts/test-package-e2e-bundle.sh: static validator (file parity, version
  pin, no src aliases, junit reporter; no network)
- .github/workflows/release-agent-e2e-bundle.yml: package + validate +
  sha256 + upload on release, same triggers as release.yml

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
integration-v4-sm 41.53% <ø> (ø)
integration-v5-sdkdev 43.91% <ø> (-0.01%) ⬇️
unit 73.84% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ling-senpeng13
ling-senpeng13 merged commit 61444ef into main Jul 21, 2026
51 of 52 checks passed
@ling-senpeng13
ling-senpeng13 deleted the feature/export-agent-e2e-bundle branch July 21, 2026 20:17
ling-senpeng13 added a commit to conductor-oss/csharp-sdk that referenced this pull request Jul 29, 2026
Packages Conductor.AI.E2eTests/ into a self-contained, version-stamped
tarball — conductor-ai-e2e-csharp-<version>.tar.gz — attached to every
GitHub release, so downstream repos (e.g. orkes-io/orkes-conductor) can
pin the e2e suite to the exact csharp-sdk release they run against.
Mirrors conductor-oss/javascript-sdk#134.

- scripts/package-e2e-bundle.sh stages the 27 e2e sources verbatim and
  generates a standalone csproj that swaps the ProjectReference for
  PackageReference conductor-ai@<version>, so a run exercises the
  published package. Two .NET-specific wrinkles: Settings (LlmModel /
  ServerUrl) is vendored, since in-repo it arrives via <Compile Include>
  from the examples project; and AssemblyName stays Conductor.AI.E2eTests
  because Conductor.AI grants it InternalsVisibleTo.
- Bundles ship check-results.py + run.sh: every test is a
  [SkippableFact] that skips on an unreachable server, so an all-skipped
  run would otherwise read as green. Same guard the in-repo agent-e2e
  workflow applies to its TRX output.
- scripts/test-package-e2e-bundle.sh statically validates the bundle
  (source parity, package pin, no ProjectReference/<Compile> escapes,
  assembly name, no leftover placeholders). --build additionally packs
  the local SDK into a temp feed and compiles against it.
- release-agent-e2e-bundle.yml packages, validates, writes sha256
  sidecars and uploads on release: [published], plus workflow_dispatch
  to attach bundles to existing releases. Tags here are bare versions.

Conductor/conductor-csharp.csproj pinned its README at the Dockerfile-only
path /package/Conductor/README.md, so `dotnet pack` failed anywhere else
(the validator's --build mode needs it). ../README.md resolves to the same
file inside the Docker build and matches Conductor.AI.csproj.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants