From e44e3e933cfd5e179e9409876a8335421ca46691 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 7 Jul 2026 16:41:57 +0000 Subject: [PATCH 1/4] Initial plan From b543a06248ae50ec857fff2e98701814e589e4d3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 7 Jul 2026 16:46:18 +0000 Subject: [PATCH 2/4] feat: unify publish.yml to include Java via workflow_call - Add workflow_call trigger to java-publish-maven.yml alongside existing workflow_dispatch (inputs mirrored exactly) - Add publish-java job to publish.yml that calls the Java workflow with releaseVersion and prerelease inputs, skipped for unstable - Update github-release job to use always() with explicit per-language status checks so Java failure doesn't block cross-language release Closes github/copilot-sdk#1874 Co-authored-by: edburns <75821+edburns@users.noreply.github.com> --- .github/workflows/java-publish-maven.yml | 15 +++++++++++++++ .github/workflows/publish.yml | 22 ++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/.github/workflows/java-publish-maven.yml b/.github/workflows/java-publish-maven.yml index e22cd05a5b..a4e62fecb8 100644 --- a/.github/workflows/java-publish-maven.yml +++ b/.github/workflows/java-publish-maven.yml @@ -22,6 +22,21 @@ on: type: boolean required: false default: false + workflow_call: + inputs: + releaseVersion: + description: "Release version (e.g., 1.0.0). If empty, derives from pom.xml by removing -SNAPSHOT" + required: false + type: string + developmentVersion: + description: "Next development version (e.g., 1.0.1-SNAPSHOT). If empty, increments patch version" + required: false + type: string + prerelease: + description: "Is this a prerelease?" + type: boolean + required: false + default: false permissions: contents: write diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e5b23a5816..109d4adc27 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -229,10 +229,28 @@ jobs: with: packages-dir: python/dist/ + publish-java: + name: Publish Java SDK + if: github.event.inputs.dist-tag != 'unstable' + needs: version + uses: ./.github/workflows/java-publish-maven.yml + with: + releaseVersion: ${{ needs.version.outputs.version }} + prerelease: ${{ github.event.inputs.dist-tag == 'prerelease' }} + secrets: inherit + github-release: name: Create GitHub Release - needs: [version, publish-nodejs, publish-dotnet, publish-python, publish-rust] - if: github.ref == 'refs/heads/main' && github.event.inputs.dist-tag != 'unstable' + needs: [version, publish-nodejs, publish-dotnet, publish-python, publish-rust, publish-java] + if: | + always() && + github.ref == 'refs/heads/main' && + github.event.inputs.dist-tag != 'unstable' && + needs.version.result == 'success' && + needs.publish-nodejs.result == 'success' && + needs.publish-dotnet.result == 'success' && + needs.publish-python.result == 'success' && + needs.publish-rust.result == 'success' runs-on: ubuntu-latest steps: - uses: actions/checkout@v6.0.2 From 589bb12084129028ceb546ba829a4d0a9fa83c03 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:58:20 +0000 Subject: [PATCH 3/4] Fix review comments: declare workflow_call secrets, gate Java publish to main, accept preview version format Co-authored-by: edburns <75821+edburns@users.noreply.github.com> --- .github/workflows/java-publish-maven.yml | 19 ++++++++++++++++--- .github/workflows/publish.yml | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/java-publish-maven.yml b/.github/workflows/java-publish-maven.yml index a4e62fecb8..92b0bb46cf 100644 --- a/.github/workflows/java-publish-maven.yml +++ b/.github/workflows/java-publish-maven.yml @@ -37,6 +37,19 @@ on: type: boolean required: false default: false + secrets: + JAVA_RELEASE_TOKEN: + required: true + JAVA_RELEASE_GITHUB_TOKEN: + required: true + JAVA_MAVEN_CENTRAL_USERNAME: + required: true + JAVA_MAVEN_CENTRAL_PASSWORD: + required: true + JAVA_GPG_SECRET_KEY: + required: true + JAVA_GPG_PASSPHRASE: + required: true permissions: contents: write @@ -159,10 +172,10 @@ jobs: exit 1 fi else - # Split version: supports "0.1.32", "0.1.32-java.0", and "0.1.32-java-preview.0" formats + # Split version: supports "0.1.32", "0.1.32-preview.0", "0.1.32-java.0", and "0.1.32-java-preview.0" formats # Validate RELEASE_VERSION format explicitly to provide clear errors - if ! echo "$RELEASE_VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+(-(beta-)?java(-preview)?\.[0-9]+)?$'; then - echo "Error: RELEASE_VERSION '$RELEASE_VERSION' is invalid. Expected format: M.M.P, M.M.P-java.N, M.M.P-java-preview.N, M.M.P-beta-java.N, or M.M.P-beta-java-preview.N (e.g., 1.2.3, 1.2.3-java.0, 1.2.3-java-preview.0, 1.2.3-beta-java.0, or 1.2.3-beta-java-preview.0)." >&2 + if ! echo "$RELEASE_VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+(-preview\.[0-9]+|(-(beta-)?java(-preview)?\.[0-9]+))?$'; then + echo "Error: RELEASE_VERSION '$RELEASE_VERSION' is invalid. Expected format: M.M.P, M.M.P-preview.N, M.M.P-java.N, M.M.P-java-preview.N, M.M.P-beta-java.N, or M.M.P-beta-java-preview.N (e.g., 1.2.3, 1.2.3-preview.0, 1.2.3-java.0, 1.2.3-java-preview.0, 1.2.3-beta-java.0, or 1.2.3-beta-java-preview.0)." >&2 exit 1 fi # Extract the base M.M.P portion (before any qualifier) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 109d4adc27..e42b1e6adc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -231,7 +231,7 @@ jobs: publish-java: name: Publish Java SDK - if: github.event.inputs.dist-tag != 'unstable' + if: github.event.inputs.dist-tag != 'unstable' && github.ref == 'refs/heads/main' needs: version uses: ./.github/workflows/java-publish-maven.yml with: From c1f7b14f668fbc05a7747baf0afeed7eea979d90 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 8 Jul 2026 14:00:05 +0000 Subject: [PATCH 4/4] Tighten version regex: use unified alternation to prevent ambiguous suffix combinations Co-authored-by: edburns <75821+edburns@users.noreply.github.com> --- .github/workflows/java-publish-maven.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/java-publish-maven.yml b/.github/workflows/java-publish-maven.yml index 92b0bb46cf..944a0ee38e 100644 --- a/.github/workflows/java-publish-maven.yml +++ b/.github/workflows/java-publish-maven.yml @@ -174,7 +174,7 @@ jobs: else # Split version: supports "0.1.32", "0.1.32-preview.0", "0.1.32-java.0", and "0.1.32-java-preview.0" formats # Validate RELEASE_VERSION format explicitly to provide clear errors - if ! echo "$RELEASE_VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+(-preview\.[0-9]+|(-(beta-)?java(-preview)?\.[0-9]+))?$'; then + if ! echo "$RELEASE_VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+(-(preview|(beta-)?java(-preview)?)\.[0-9]+)?$'; then echo "Error: RELEASE_VERSION '$RELEASE_VERSION' is invalid. Expected format: M.M.P, M.M.P-preview.N, M.M.P-java.N, M.M.P-java-preview.N, M.M.P-beta-java.N, or M.M.P-beta-java-preview.N (e.g., 1.2.3, 1.2.3-preview.0, 1.2.3-java.0, 1.2.3-java-preview.0, 1.2.3-beta-java.0, or 1.2.3-beta-java-preview.0)." >&2 exit 1 fi