ci: split release profile CI into two tiers by kabir · Pull Request #972 · a2aproject/a2a-java · GitHub
Skip to content

ci: split release profile CI into two tiers - #972

Merged
kabir merged 1 commit into
a2aproject:mainfrom
kabir:release-ci
Jul 6, 2026
Merged

kabir merged 1 commit into
a2aproject:mainfrom
kabir:release-ci

Conversation

@kabir

@kabir kabir commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Tier 1 (all PRs, no secrets): runs mvn install -Prelease with GPG and publishing skipped to catch compilation/javadoc issues early.

Tier 2 (allow-listed actors + protected branch pushes, with secrets): adds actor allow-list, allow-unsafe-pr-checkout, and Sonatype credential validation. Fixes actions/checkout@v7 fork-checkout block.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the RELEASE.md documentation to describe a new two-tier CI verification process for the release profile. Tier 1 runs on all PRs without secrets, while Tier 2 runs with secrets for allow-listed maintainers and specific branches. The review feedback suggests clarifying whether tests are executed during Tier 1; if they are, the documentation should explicitly mention test verification and failures under both the Tier 1 description and the workflow reference section.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread RELEASE.md Outdated
Comment on lines +85 to +88

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The previous version of the documentation verified No compilation or test failures. The updated Tier 1 list only mentions No compilation failures on line 88, and the Maven command on line 85 does not include -DskipTests.

  • If Tier 1 still runs tests, we should keep the mention of test failures to accurately reflect what is verified.
  • If Tier 1 is intended to skip tests for speed, we should explicitly add -DskipTests to the Maven command on line 85.

Assuming tests are still run, this suggestion restores the test verification mention.

Suggested change
- ✅ Build succeeds with `-Prelease` profile (`-Dgpg.skip=true -Drelease.auto.publish=false`)
- ✅ All JavaDoc generation succeeds
- ✅ GPG signing works correctly
- ✅ JBang version validation passes
- ✅ No compilation or test failures
- ✅ No compilation failures
- ✅ Build succeeds with `-Prelease` profile (`-Dgpg.skip=true -Drelease.auto.publish=false`)
- ✅ All JavaDoc generation succeeds
- ✅ JBang version validation passes
- ✅ No compilation or test failures

Comment thread RELEASE.md
### build-with-release-profile.yml (Tier 1 — Trigger)
- **Triggers**: All PRs, all pushes, manual dispatch
- **Purpose**: Build with `-Prelease` profile without secrets; upload PR info for Tier 2
- **Catches**: Compilation, javadoc, plugin configuration issues

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

If Tier 1 runs tests (as it does not specify -DskipTests), it will also catch test failures. Consider adding test to the list of caught issues for completeness.

Suggested change
- **Catches**: Compilation, javadoc, plugin configuration issues
- **Catches**: Compilation, javadoc, test, plugin configuration issues

@jmesnil jmesnil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kabir LGMT, I suggested some improvements if it becomes difficult to maintain the branches and authors but let's use what you have done now.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hard-coding writers and allowed branches might not be maintainable on the long run.

It seems doable to have a check that only users with write permissions to the repository could run this job. (https://github.com/actions-cool/check-user-permission)

Another thing that might work is using environments with requested reviewers (https://docs.github.com/en/actions/how-tos/deploy/configure-and-manage-deployments/review-deployments#approving-or-rejecting-a-job)

Tier 1 (all PRs, no secrets): runs mvn install -Prelease with GPG
and publishing skipped to catch compilation/javadoc issues early.

Tier 2 (allow-listed actors + protected branch pushes, with secrets):
adds actor allow-list, allow-unsafe-pr-checkout, and Sonatype
credential validation. Fixes actions/checkout@v7 fork-checkout block.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kabir
kabir merged commit dae30d2 into a2aproject:main Jul 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants