AGS-22: add CI that builds and tests every language surface - #13
Merged
Conversation
Before this the only automation was the two PyPI publish jobs. Nothing
compiled Java, ran pytest, go test, or clojure -X:test — which is why AGS-9
(a compile error leaving the whole JVM tree unbuildable) sat unnoticed.
Four parallel jobs:
jvm Java 21. jagentic-core -> agentic-flink -> 6 ports -> agentic-pekko
-> tool-services -> a2a-gateway -> banking-job. Ordering is manual
because there is no reactor (AGS-10); jagentic-core is an
unpublished hard dependency so it must be installed first. Uploads
surefire reports on failure.
go go vet + go test over ports/go.
clojure clojure -X:test over agentic-clj.
python pyagentic + the port adapter suite.
Also fixes two things CI immediately surfaced:
- ports/pyagentic declared no PyYAML, so test_cep_weave failed on any clean
machine (1 failed / 87 passed). Added to the test extra; now 88 pass.
- ports/tests hard-failed without Celery rather than skipping, so the job
installs it — the adapter tests then run for real in eager mode, no broker.
And corrects the publish workflows + python/pyproject URLs, which still
pointed at the pre-rename Agentic-Flink repo. Flags that the PyPI trusted
publisher must be re-registered against Agentic-Streaming, since PyPI matches
the OIDC repository claim exactly (AGS-30).
Verified locally on JDK 21 with ~/.m2/repository/org/{jagentic,agentic}
purged, running the exact step sequence: 922 tests green across 13 JVM
modules, go vet clean + 6/6 packages, 64 Clojure tests, 88 pyagentic + 7
adapter tests.
Spotless is deliberately not a gate yet: spotless:check fails on code already
in main, and `apply` is bound to the default lifecycle so builds rewrite
sources. Flipping it to `check` needs a repo-wide format commit first.
Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before this, the only automation in the repo was the two PyPI publish jobs. Nothing compiled Java, ran
pytest,go test, orclojure -X:test— which is exactly why AGS-9 (a compile error that left the whole JVM tree unbuildable from a clean checkout) sat unnoticed. This PR is its own proof: the checks below are the first ones this repo has ever run.Jobs
jagentic-core→agentic-flink→ 6ports/*→agentic-pekko→tool-services→a2a-gateway→banking-jobgo vet ./...+go test ./...overports/goclojure -X:testoveragentic-cljpyagentic+ the port adapter suiteThe JVM ordering is manual because there is no Maven reactor (AGS-10) —
jagentic-coreis an unpublished hard compile-scope dependency, so it must be installed before anything else resolves. Surefire reports upload on failure.Two bugs CI immediately surfaced, fixed here
ports/pyagenticnever declared PyYAML, sotest_cep_weavefailed on any clean machine (1 failed / 87 passed). Added to thetestextra → 88 pass.ports/testshard-failed without Celery instead of skipping, so the job installs it. The adapter tests then run for real in eager mode, no broker needed.Also fixed
The publish workflows and
python/pyproject.tomlstill pointed at the pre-renameAgentic-Flinkrepo — 4 dead URLs. Corrected, with a note that the PyPI trusted publisher must be re-registered againstAgentic-Streaming, since PyPI matches the OIDCrepositoryclaim exactly (AGS-30). That part cannot be fixed from the repo side.Verified locally before pushing
Ran the exact step sequence on JDK 21 with
~/.m2/repository/org/{jagentic,agentic}purged, so nothing stale could mask a break:go vetclean, 6/6 Go packagesDeliberately not included
Spotless is not a gate.
spotless:checkfails on code already inmain, andapplyis bound to the default lifecycle so every build rewrites sources. Flipping it tocheckneeds a repo-wide format commit first — shipping it now would mean a permanently red job.Container-backed integration tests are also out of scope for v1:
*IT.javafiles are currently unrunnable in every profile (no failsafe plugin), tracked as AGS-23.🤖 Generated with Claude Code