Skip to content

Latest commit

 

History

History
138 lines (90 loc) · 5.85 KB

File metadata and controls

138 lines (90 loc) · 5.85 KB

Workflows

Overview

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
Codegen Check Verifies that generated Java files are up-to-date with the JSON schemas push (main), pull_request, workflow_dispatch
Update @github/copilot Dependency Updates the @github/copilot npm package, re-runs code generation, and opens a PR workflow_dispatch
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

Build & Test

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:

  1. Checks code formatting with Spotless
  2. Compiles the SDK and clones the upstream test harness
  3. Verifies Javadoc generation
  4. Installs the Copilot CLI from the cloned upstream SDK
  5. Runs the full test suite with mvn verify
  6. Uploads test results (JaCoCo + Surefire) as artifacts for site generation

Ignores changes to README.md, LICENSE, and .github/**.


Deploy Documentation

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 release publication; 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).


Publish to Maven Central

File: publish-maven.yml

Manual-only workflow that performs a full release:

  1. Determines release and next development versions (auto-derived from pom.xml or manually specified)
  2. Updates CHANGELOG.md, README.md, and jbang-example.java with the release version
  3. Injects the upstream sync commit hash from .lastmerge into the changelog
  4. Runs mvn release:prepare and mvn release:perform to deploy to Maven Central
  5. Creates a GitHub Release with auto-generated notes
  6. Moves the latest git tag forward
  7. Triggers the Deploy Documentation workflow
  8. Rolls back the documentation commit if the release fails

Weekly Upstream Sync

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:

  1. Closes any previously open upstream-sync issues
  2. Creates a new issue with a summary of upstream changes
  3. Assigns the issue to copilot-swe-agent for automated porting

If no changes are found, any stale open upstream-sync issues are closed.


Weekly Upstream Sync (Agentic Workflow: Experimental)

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 .md source and run gh aw compile.


Codegen Check

File: codegen-check.yml

Verifies that the generated Java source files in src/generated/java/ are up-to-date with the JSON schemas distributed in the @github/copilot npm package.

Steps:

  1. Installs the codegen dependencies from scripts/codegen/
  2. Runs the Java code generator (npm run generate)
  3. Fails with a diff if any generated file differs from what is committed

Run this locally with:

cd scripts/codegen && npm ci && npm run generate

If changes appear, commit the updated generated files.


Update @github/copilot Dependency

File: update-copilot-dependency.yml

Manual workflow triggered when a new version of the @github/copilot npm package is published. Accepts a version input (e.g. 1.0.25).

Steps:

  1. Updates @github/copilot in scripts/codegen/package.json
  2. Re-runs the Java code generator
  3. Commits the updated package.json, package-lock.json, and all regenerated Java files
  4. Opens (or updates) a pull request for review

The resulting PR will be automatically validated by the Codegen Check workflow.


Copilot Setup Steps

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-aw CLI extension
  • Maven cache