You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
kie-issues#2404: 10.3.x+ stream: Re-write drools release jobs to be local scripts invoked in Apache Jenkins and remove old ones. - #7123
This PR introduces local-first release automation scripts for the consolidated incubator-kie repository and updates the Jenkins release pipelines to use them.
What the Release Scripts Do:
script/release/01-update-version.sh — Updates the Maven version across all reactor modules (Drools, OptaPlanner, Kogito Runtimes, Kogito Apps).
script/release/02-rc-commit.sh — Creates a short-lived local release branch, bumps to the exact release version, creates the R commit, tags the RC (e.g. 10.3.0-rc1), and deletes the temporary branch. Only the tag is pushed.
script/release/03-build.sh — Runs mvn clean install -Dfull across the full reactor and installs JARs to ~/.m2/repository.
script/release/04-deploy-to-staging.sh — Signs artifacts with GPG and deploys them to the Apache Nexus staging repository. Dry-run by default; requires --deploy to actually upload.
script/release/05-tag-release.sh — Promotes an approved RC tag (e.g. 10.3.0-rc1) to the final release tag (10.3.0) once the vote passes.
script/release/release-all.sh — Master orchestrator that runs steps 02 → 03 → 04 in sequence. Accepts --version, --tag, --skip-tests, --deploy, --push-tag, --maven-opts, and --dry-run.
Jenkins Pipeline Updates:
.ci/jenkins/project/Jenkinsfile.103xplus.release — New pipeline that delegates the full RC workflow to script/release/release-all.sh.
.ci/jenkins/Jenkinsfile.103xplus.deploy & .ci/jenkins/Jenkinsfile.103xplus.promote — New pipelines streamlined to avoid duplicating release tagging and signing logic now handled by the scripts.
Backups preserved: Kept .ci/jenkins/project/Jenkinsfile.release, .ci/jenkins/Jenkinsfile.deploy, and .ci/jenkins/Jenkinsfile.promote to ensure zero disruption until the new pipelines are verified in CI.
The reason will be displayed to describe this comment to others. Learn more.
I can not do a review without a ticket or acceptance criteria that would explain me:
am I from the group of users authorized to run such scripts?
do I need some credentials to run such scripts?
what is result of the scripts, where should it be uploaded?
will be the scripts started only by CI robots?
what is the command I should start?
are the scripts isolated per repository?
does scripts something like "full build" of all repositories of specific version/commit?
Kusuma04-dev
changed the title
10.3.x+ stream: Re-write drools release jobs to be local scripts invoked in Apache Jenkins and remove old ones.
kie-issues#2404: 10.3.x+ stream: Re-write drools release jobs to be local scripts invoked in Apache Jenkins and remove old ones.
Sep 18, 2026
You don't need to run a full build. Complete build logs and testable artifacts are already available in the kie-release-10.3/evidence repository for verification.
Authorized users: Anyone can run local builds or dry-runs. Official releases are executed through Jenkins.
Credentials: No credentials are needed for local RC builds or testing. Publishing credentials (NPM, VSCE, GPG, etc.) are pre-configured in Jenkins and used only for official releases.
Output and upload location: For a local dry-run, the scripts generate artifacts under release-artifacts (in kie-tools) and the local .m2 repository (in kie). If the release is run through Jenkins, the generated artifacts are uploaded to Apache SVN dev and Nexus Staging for voting, and are published to public registries after approval.
CI vs local execution: Official releases run on Jenkins, but the release scripts can also be executed locally.
Thanks @Kusuma04-dev! Love to see this moving in this direction. I have a few observations to increase clarity and reduce friction in our development/release processes.
The .backup files would require us to do a configuration change on Jenkins. Why not leave them as they are, and simply create new files, for new jobs? We can do like below for the new ones, and leave the old ones as they are. When we know the new jobs are working, we send a new PR deleting the files and update Jenkins to delete the old jobs.
Jenkinsfile.103xplus.release
Jenkinsfile.103xplus.deploy
Jenkinsfile.103xplus.promote
We don't really have JITEXECUTOR_NATIVE anymore. You can remove those flags/configs from the new release jobs.
Can we standardize our terminology here? Release/build/publish/promote/deploy can be very confusing. I'd say we should even number (or identify with the automation letters) our scripts so that we understand exactly what order things are expected to be run.
Is it possible to align the CLI arguments of each script between the two repos? The more in sync they are, the less friction we have during the release procedure. I'm sure they will be very similar to each other.
I see some references in the code and in comments saying "Drools unified repo", but we don't need to call it that. It's the KIE repo.
Is data-index ephemeral image tag issue still current, or is it something that is just a historical artifact from our old Jenkins automations?
1. .backup files — create new files, leave old ones as-is
Done — created Jenkinsfile.103xplus.release-candidate and Jenkinsfile.103xplus.release-publish as new files, leaving all existing Jenkinsfiles untouched.
2. Remove JITEXECUTOR_NATIVE flags from new release jobs
Removed — JITEXECUTOR_NATIVE flags and GraalVM JDK for native references are not present in either new Jenkinsfile.
4. Standardize terminology + number/letter the scripts
Done — scripts are prefixed 01–05 in both repos and automations are labelled A/D/E/F/G in release-procedure-10.3.md with consistent --rc/--publish flag naming across both incubator-kie and incubator-kie-tools.
5. repo/RELEASING.md pointing to incubator-kie-website as single source of truth
Done — Added repo/RELEASING.md in incubator-kie-tools.
6. Align CLI arguments between the two repos
Done — both repos now use the same release-all.sh --rc / --publish pattern, with incubator-kie's release-all.sh accepting --rc and --publish as aliases for parity.
7. "Drools unified repo" → "KIE repo"
Fixed — all references now say "KIE repo" and the Repositories Matrix table label has been updated accordingly.
8.data-index ephemeral image tag
It is an active mechanism for Quarkus Dev Services container image resolution.
The reason will be displayed to describe this comment to others. Learn more.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
This PR adds local-first release automation scripts for the consolidated incubator-kie repo and introduces new Jenkins pipelines intended to delegate release activities to those scripts.
Changes:
Added script/release/* scripts to orchestrate RC tagging, building, staging deploys, and final tag promotion.
Added release documentation (script/release/README.md, docs/RELEASING.md) describing the new workflow.
Added new Jenkins pipelines for 10.3.x+ release/deploy/promote flows.
File
Description
script/release/release-all.sh
New orchestrator for RC flow (rc-commit → build → deploy).
script/release/README.md
New detailed documentation for the release scripts and lifecycle.
script/release/01-update-version.sh
New script to update reactor Maven versions and related properties.
script/release/02-rc-commit.sh
New script to create R-commit and RC tag (optional push).
script/release/03-build.sh
New script to build the full reactor with optional test skipping.
script/release/04-deploy-to-staging.sh
New script to deploy artifacts to Nexus staging (dry-run by default).
script/release/05-tag-release.sh
New script to promote an RC tag into a final release tag.
docs/RELEASING.md
New repo-level release guide pointing to canonical docs + local scripts.
The documented 999-SNAPSHOT main-stream version does not match this substitution, so it remains 999-SNAPSHOT. The later property update then replaces the data-index image tag's current main value with the Maven snapshot version rather than the stream name. Handle 999-SNAPSHOT explicitly so the documented main-branch command continues selecting the main-stream image.
Restore original detached commit before deleting branch
script/release/02-rc-commit.sh:107
A detached checkout records the literal HEAD here. After creating the release branch, git checkout HEAD does not restore the original commit, and deleting the still-current release branch fails. This affects Jenkins SCM checkouts, which the existing pipelines explicitly handle as detached. Save the branch name when attached and the original commit SHA otherwise.
Restore detached HEAD by commit SHA
script/release/04-deploy-to-staging.sh:141
Starting from detached HEAD records the literal HEAD, not the original commit. After checking out the RC tag, the final git checkout "${ORIG_REF}" therefore leaves the repository at that tag instead of restoring the starting checkout. Save the branch name when attached and the commit SHA otherwise.
The reason will be displayed to describe this comment to others. Learn more.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
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
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.
closes #7140,
This PR introduces local-first release automation scripts for the consolidated incubator-kie repository and updates the Jenkins release pipelines to use them.
What the Release Scripts Do:
script/release/01-update-version.sh— Updates the Maven version across all reactor modules (Drools, OptaPlanner, Kogito Runtimes, Kogito Apps).script/release/02-rc-commit.sh— Creates a short-lived local release branch, bumps to the exact release version, creates the R commit, tags the RC (e.g. 10.3.0-rc1), and deletes the temporary branch. Only the tag is pushed.script/release/03-build.sh— Runs mvn clean install -Dfull across the full reactor and installs JARs to ~/.m2/repository.script/release/04-deploy-to-staging.sh— Signs artifacts with GPG and deploys them to the Apache Nexus staging repository. Dry-run by default; requires --deploy to actually upload.script/release/05-tag-release.sh— Promotes an approved RC tag (e.g. 10.3.0-rc1) to the final release tag (10.3.0) once the vote passes.script/release/release-all.sh— Master orchestrator that runs steps 02 → 03 → 04 in sequence. Accepts --version, --tag, --skip-tests, --deploy, --push-tag, --maven-opts, and --dry-run.Jenkins Pipeline Updates:
.ci/jenkins/project/Jenkinsfile.103xplus.release — New pipeline that delegates the full RC workflow to script/release/release-all.sh.
.ci/jenkins/Jenkinsfile.103xplus.deploy & .ci/jenkins/Jenkinsfile.103xplus.promote — New pipelines streamlined to avoid duplicating release tagging and signing logic now handled by the scripts.
Backups preserved: Kept .ci/jenkins/project/Jenkinsfile.release, .ci/jenkins/Jenkinsfile.deploy, and .ci/jenkins/Jenkinsfile.promote to ensure zero disruption until the new pipelines are verified in CI.