| Workflow | Description | Triggers | Schedule |
|---|---|---|---|
| Build & Test | Builds, lints, and tests the Java SDK | push (main), pull_request, merge_group, workflow_dispatch |
Sundays at 00:00 UTC |
| Deploy Documentation | Generates and deploys versioned docs to GitHub Pages | workflow_run (after Build & Test), release, workflow_dispatch |
— |
| Publish to Maven Central | Releases the SDK to Maven Central and creates a GitHub Release | workflow_dispatch |
— |
| Weekly Upstream Sync | Checks for new upstream commits and creates an issue for Copilot to merge | workflow_dispatch |
Mondays at 10:00 UTC |
| Weekly Upstream Sync (Agentic) | Compiled agentic workflow that executes the upstream sync via gh-aw |
workflow_dispatch |
Tuesdays at 08:39 UTC (scattered) |
| Copilot Setup Steps | Configures the environment for the GitHub Copilot coding agent | push (on self-change), workflow_dispatch |
— |
File: build-test.yml
Runs on every push to main, on pull requests, and in merge groups. Also runs weekly on Sundays to catch regressions from dependency updates.
Steps:
- Checks code formatting with Spotless
- Compiles the SDK and clones the upstream test harness
- Verifies Javadoc generation
- Installs the Copilot CLI from the cloned upstream SDK
- Runs the full test suite with
mvn verify - Uploads test results (JaCoCo + Surefire) as artifacts for site generation
Ignores changes to README.md, LICENSE, and .github/**.
File: deploy-site.yml
Builds and deploys the Maven site to GitHub Pages. Supports three publishing modes:
- Snapshot — triggered automatically after a successful Build & Test run on
main; publishes to/snapshot/ - Release — triggered on
releasepublication; publishes to/vX.Y.Z/and/latest/ - Manual — allows building docs for a specific version tag, optionally publishing as
latest, or rebuilding all versions
Only one deployment runs at a time (concurrency: pages).
File: publish-maven.yml
Manual-only workflow that performs a full release:
- Determines release and next development versions (auto-derived from
pom.xmlor manually specified) - Updates
CHANGELOG.md,README.md, andjbang-example.javawith the release version - Injects the upstream sync commit hash from
.lastmergeinto the changelog - Runs
mvn release:prepareandmvn release:performto deploy to Maven Central - Creates a GitHub Release with auto-generated notes
- Moves the
latestgit tag forward - Triggers the Deploy Documentation workflow
- Rolls back the documentation commit if the release fails
File: weekly-upstream-sync.yml
Runs every Monday at 10:00 UTC. Clones the official github/copilot-sdk repository and compares HEAD against the commit hash stored in .lastmerge.
If new commits are found:
- Closes any previously open
upstream-syncissues - Creates a new issue with a summary of upstream changes
- Assigns the issue to
copilot-swe-agentfor automated porting
If no changes are found, any stale open upstream-sync issues are closed.
File: weekly-upstream-sync.lock.yml
Auto-generated compiled workflow produced by gh aw compile from the corresponding .md source. This is the agentic counterpart that actually executes the upstream merge using the gh-aw MCP server and Copilot coding agent.
Do not edit this file directly. Edit the
.mdsource and rungh aw compile.
File: copilot-setup-steps.yml
Configures the development environment for the GitHub Copilot coding agent (copilot-swe-agent). The job must be named copilot-setup-steps to be recognized.
Sets up:
- Node.js 22
- JDK 17 (Temurin)
gh-awCLI extension- Maven cache