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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 5 additions & 2 deletions .github/workflows/agent-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Agent E2E

# Runs the agent e2e suites (e2e/) against the Conductor OSS
# server boot JAR (Maven Central) — the server this SDK ships against, with
# the agent runtime on by default from 3.32.0-rc.8 onward. The Agentspan
# the agent runtime on by default from 3.32.0-rc.8 onward. A separate agent
# server JAR is no longer used here.
#
# These tests call real LLMs via the OPENAI_API_KEY / ANTHROPIC_API_KEY
Expand All @@ -25,12 +25,15 @@ env:

jobs:
agent-e2e:
# Temporarily disabled until a Conductor server release containing the
# required agent-runtime changes is published.
if: ${{ false }}
runs-on: ubuntu-latest
timeout-minutes: 45
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
AGENTSPAN_SERVER_URL: http://localhost:8080/api
CONDUCTOR_SERVER_URL: http://localhost:8080/api
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand Down
86 changes: 85 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,92 @@
cancel-in-progress: true

jobs:
documentation-validation:
runs-on: ubuntu-latest
name: Documentation validation
timeout-minutes: 15

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Zulu JDK 21
uses: actions/setup-java@v5
with:
distribution: "zulu"
java-version: "21"

- name: Validate documentation links
uses: lycheeverse/lychee-action@v2
with:
args: --offline --no-progress README.md docs

- name: Reject retired documentation references
run: |
if grep -REn ':examples:run|examples/old|LlmIndexDocument|\.topK\(|runtime\.schedules\(|Schedule\.builder|conductor\.netflix\.com|^=== "|compileOnly .*langchain|compileOnly .*google\.adk|compileOnly .*langgraph|docs/agents/index\.md|docs/agents/agent-(runtime-api|client-api|structure|schema)\.md|docs/agents/api-reference\.md|docs/testing_framework\.md' README.md docs; then
echo "Documentation references a retired command, path, API, or renderer-specific construct."
exit 1
fi

- name: Validate documented source links and test-server version
run: |
curl --fail --silent --show-error --location --retry 3 --retry-all-errors --output /dev/null \
https://github.com/conductor-oss/java-sdk/blob/main/conductor-client/src/main/java/com/netflix/conductor/sdk/workflow/executor/WorkflowExecutor.java
curl --fail --silent --show-error --location --retry 3 --retry-all-errors --output /dev/null \
https://github.com/conductor-oss/java-sdk/blob/main/conductor-client/src/test/java/com/netflix/conductor/sdk/workflow/testing/WorkflowTestFrameworkTests.java
server_version="$(sed -n 's/.*new WorkflowTestRunner(8080, "\([^"]*\)").*/\1/p' conductor-client/src/test/java/com/netflix/conductor/sdk/workflow/testing/WorkflowTestFrameworkTests.java)"
test -n "$server_version"
grep -Fq "$server_version" docs/workflow-testing.md

- name: Verify agent configuration schema
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Run agent configuration schema verifier
run: |
python -m pip install --disable-pip-version-check -r tools/agent-schema/requirements.txt
python tools/agent-schema/verify.py
test ! -d docs/agents/generated
test -f docs/agents/reference/agent-schema.json
test ! -f docs/agents/concepts/skills.md

- name: Verify documented example targets
run: |
test -f examples/basics/hello-world/run.sh
test -f agent-examples/src/main/java/org/conductoross/conductor/ai/examples/Example01BasicAgent.java
test -f agent-examples/src/main/java/org/conductoross/conductor/ai/examples/Example108PlanExecuteRefs.java
test -f agent-examples/src/main/java/org/conductoross/conductor/ai/examples/Example115PlannerContext.java

- name: Compile documented AI example target
run: ./gradlew :agent-examples:compileJava

- name: Package documented core example
run: |
docker run --rm \
-v "$PWD/examples/basics/hello-world":/work \
-v "$HOME/.m2":/root/.m2 \
-w /work \
maven:3.9-eclipse-temurin-21 \
mvn -B package -DskipTests

- name: Smoke-test documented core quickstart
working-directory: examples/basics/hello-world
env:
CONDUCTOR_PORT: 18080
CONDUCTOR_UI_PORT: 11234
run: |
timeout 240 ./run.sh
curl --fail --silent --show-error --output /dev/null --retry 10 --retry-delay 2 --retry-all-errors http://localhost:18080/health
curl --fail --silent --show-error --output /dev/null --retry 10 --retry-delay 2 --retry-all-errors http://localhost:11234/
docker compose ps --status running --services | grep -Fx conductor

- name: Stop documented core quickstart
if: always()
working-directory: examples/basics/hello-world
run: docker compose down -v --remove-orphans

build:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
runs-on: ubuntu-latest
name: Java Client Build
env:
Expand Down Expand Up @@ -59,4 +144,3 @@
- name: Check Tests Status
if: steps.tests.outcome == 'failure'
run: exit 1

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ bin/
*.db
*.db-shm
*.db-wal
/design/openspec
78 changes: 0 additions & 78 deletions CHANGELOG.md

This file was deleted.

9 changes: 9 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Code of Conduct

This repository follows the [Conductor OSS Code of Conduct](https://github.com/conductor-oss/conductor/blob/main/CODE_OF_CONDUCT.md).

Participate with kindness, respect, professionalism, and a focus on constructive technical discussion. Harassment, discrimination, personal attacks, and other exclusionary behavior are not acceptable in issues, pull requests, community channels, or project events.

Report conduct concerns privately to [community@orkes.io](mailto:community@orkes.io), as specified by the canonical Conductor OSS policy. Do not report conduct incidents in a public issue.

The canonical upstream policy governs if this summary and the upstream policy ever differ.
39 changes: 39 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Contributing to the Conductor Java SDK

Thanks for contributing. This repository contains the Java client, AI agent SDK, Spring integrations, examples, and end-to-end tests.

All participation is governed by the [Code of Conduct](CODE_OF_CONDUCT.md).

## Prerequisites

- Java 21+
- Docker for examples and integration tests that start Conductor

## Local checks

Run formatting before committing:

```shell
./gradlew spotlessApply
```

Run the SDK test suite:

```shell
./gradlew test jacocoTestReport
```

Compile the maintained agent examples when changing their APIs or documentation:

```shell
./gradlew :agent-examples:compileJava
```

## Pull requests

- Keep changes focused and include tests for behavior changes.
- Update the relevant documentation and examples when public APIs or commands change.
- Do not add secrets, credentials, or private endpoints to source, tests, or documentation.
- Open pull requests against `main` and complete the pull-request template.

To contribute across the broader project, browse [Conductor OSS contribution opportunities](https://github.com/conductor-oss/conductor/contribute) and follow the [upstream contribution guide](https://github.com/conductor-oss/conductor/blob/main/CONTRIBUTING.md).
Loading
Loading