Update Adoptium mirror to generically mirror Skara CSPU branches and feature branches - #93
Merged
Merged
Conversation
Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
…arameters Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
…aleness check Co-authored-by: Bob <bob@ibm.com>
…ox-safe staleness check Co-authored-by: Bob <bob@ibm.com>
… correct base Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
…d bare clone for branch discovery Co-authored-by: Bob <bob@ibm.com>
Signed-off-by: Andrew Leonard <andrew.m.leonard@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
… aarch32-port-jdk8u Co-authored-by: Bob <bob@ibm.com>
…ly tags Co-authored-by: Bob <bob@ibm.com>
…add Slack failure alerts Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
Co-authored-by: Bob <bob@ibm.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Overhauls Skara mirroring to support CSPU branches, additional JDK 8 repositories, and repository-specific patching.
Changes:
- Dynamically discovers and mirrors active upstream branches.
- Corrects branch, tag, and patch handling.
- Adds Alpine and AArch32 patch sets while removing obsolete PPC64LE patches.
Reviewed changes
Copilot reviewed 17 out of 19 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
Jenkinsfile |
Adds dynamic branch mirroring and notifications. |
skaraMirror.sh |
Revises repository, branch, tag, and patch logic. |
patches/jdk8u/ppc64le_1.patch |
Removes obsolete PPC64LE changes. |
patches/jdk8u/ppc64le_2.patch |
Removes obsolete JVM configuration patch. |
patches/jdk8u/0001-Backport-8073139.patch |
Removes an upstreamed backport. |
patches/jdk8u/0001-Set-vendor-information.patch |
Refreshes vendor metadata patch. |
patches/jdk8u/company_name.patch |
Refreshes company-name support. |
patches/jdk8u/actions-ignore-branches.patch |
Excludes mirror branches from Actions. |
patches/jdk11u/actions-ignore-branches.patch |
Adds the JDK 11 override marker. |
patches/jdk17u/actions-ignore-branches.patch |
Excludes mirror branches from Actions. |
patches/jdk21u/actions-ignore-branches.patch |
Excludes mirror branches from Actions. |
patches/alpine-jdk8u/0002-apply-PATCH-Allow-setting-company-name.patch |
Adds Alpine company metadata. |
patches/alpine-jdk8u/0003-apply-0001-Set-vendor-information.patch.patch |
Adds Alpine vendor metadata. |
patches/alpine-jdk8u/0004-skip-github-actions-builds-to-save-executors.patch |
Suppresses Alpine mirror builds. |
patches/alpine-jdk8u/0005-alpine-musl-libc-support.patch |
Adds consolidated musl support. |
patches/alpine-jdk8u/actions-ignore-branches.patch |
Adds another Actions exclusion patch. |
patches/aarch32-port-jdk8u/company_name.patch |
Adds AArch32 company metadata. |
patches/aarch32-port-jdk8u/0001-Set-vendor-information.patch |
Adds AArch32 vendor metadata. |
patches/aarch32-port-jdk8u/actions-ignore-branches.patch |
Suppresses AArch32 mirror builds. |
Suppressed comments (1)
Jenkinsfile:143
ADOPTIUM_MIRROR_REPOis interpolated directly into the shell program. An embedded single quote terminates the intended quoting and allows command injection. Pass both arguments through environment variables and expand them as quoted shell data instead.
withEnv(["BRANCH=${branch}"]) {
sh """
git --version
bash ./skaraMirror.sh '${params.SKARA_REPO}' ${mirrorRepoArg ? "'${mirrorRepoArg}'" : ''}
"""
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…led patch section Co-authored-by: Bob <bob@ibm.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 18 changed files in this pull request and generated 8 comments.
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
skaraMirror.sh:128
- If
git rebase --continueencounters another conflicting commit, this exits while leaving the repository in an active rebase. Subsequent hourly runs cannot check out$BRANCH, so the mirror remains stuck until manually cleaned. Abort the rebase before exiting when continuation fails.
if ! git rebase "skara/$BRANCH" "$BRANCH" ; then
if resolveGeneratedConfigureConflict ; then
git rebase --continue || exit 1
else
git rebase --abort
exit 1
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…enerated-configure.sh changes Co-authored-by: Bob <bob@ibm.com>
gdams
approved these changes
Sep 1, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #92
Summary
This PR (
mirror_cspu) delivers a full overhaul of the Skara mirroringpipeline, covering dynamic branch discovery, expanded repo support, patch
management, correctness fixes to the tag/branch logic, and CI hardening.
The patches folder has been brought fully up to date, including for all the jdk8u variants, so that the complete patch-sets for jdk8u (base, alpine, aarch32) can be applied into new CSPU branches, and we are not reliant on patches only being persisted as ancient commits in existing branches.
Pipeline & CI (
Jenkinsfile)JDK_VERSION/ADOPTIUM_MIRROR_REPOparameters with a fully dynamic approach thatdiscovers all active upstream Skara branches automatically and mirrors
each one per run.
JDK_VERSIONrenamed toSKARA_REPOthroughoutto accurately reflect that it identifies the upstream Skara repository name
(e.g.
jdk17u,aarch32-port-jdk8u), not a JDK version number.pr/*branches are filtered out before anyprocessing; upstream Skara repos can have hundreds of these and they are
never mirrored.
90 days are skipped automatically.
git ls-remote— replaced GitHub API calls fordefault-branch and branch-list discovery with a temporary bare clone and
git ls-remote --symref, removing the API token dependency entirely.CLEAN_MIRROR_WORKSPACEparameter to wipe the mirror workspace between runs.
failure, unstable, aborted, changed, fixed, regression).
java.time.InstantISO-8601parsing (not permitted in the Jenkins sandbox) with a plain shell
date -d '90 days ago' +%scall.dangeralert is sent to#buildonly during 09:00–11:59 UTC to avoid hourly spam. The messageincludes the
SKARA_REPOname and, if specified, theADOPTIUM_MIRROR_REPOtarget, plus a direct link to the console log.
Mirror Script (
skaraMirror.sh)New repo support
alpine-jdk8u— added full patch set for Alpine/musl libc support;wired Skara remote to the upstream
jdk8urepo (alpine mirrors from jdk8u,not its own Skara repo).
aarch32-port-jdk8u— added dedicated patch set; corrected Adoptiumtarget repo name mapping to
aarch32-jdk8u(without theport-prefix);fixed
VERSIONextraction which was mangling the repo name.Correctness fixes
aarch32-port-jdk8utag isolation — the upstream Skara repo for thisproject inherits all plain
jdk8u*tags from the parent repo. Agrep 'aarch32'pre-filter is now prepended tojdk_sort_tags_cmdforthis repo so non-aarch32 tags are never considered for branch-point
selection,
_adopttagging, or merging intorelease/dev.+0/-b00branch-point tag filtering — restored and hardened thefilters that exclude branch-point tags from the merge loop:
grep -v '\+0$'— branch-point tags (e.g.jdk-21.0.15+0)sort higher than any in-progress current-version build tags; including
them would advance
currentReleaseTagpast not-yet-published builds,permanently locking them out of the merge loop.
grep -v '\-b00'— anchor removed (no$) to also matchaarch32-style tags where
-b00appears mid-string(e.g.
jdk8u504-b00-aarch32-20260731)._adopttag on new release branch — after Adoptium patches are appliedto a freshly created
release_BRANCH, the base build tag is now immediatelytagged with
_adoptso subsequent merge loop runs have a valid startingpoint.
git fetch skarais now performedbefore the branch checkout/creation logic so
skara/$BRANCHis alwaysavailable as a base when creating a new local branch.
git reset --hard origin/$BRANCHis now gated on
origin/$BRANCHactually existing, preventing a fatal erroron first-run of a newly mirrored repo.
DEV_BRANCHdoes not yet exist it is createdfrom
$BRANCH(the up-to-date Skara mirror branch) rather than fromwhatever
HEADhappens to be afterperformMergeIntoReleaseFromMaster.patches/<GITHUB_REPO>/take precedence over same-named top-level patches, allowing per-repo
overrides without duplicating the full patch set.
Patch changes
ppc64lejdk8u patches (already upstream).actions-ignore-branches.patchforjdk21uandalpine-jdk8u.Test Reproducible build of Temurin jdk-21.0.12.1+1 x64 Linux
Assisted-by: Bob bob@ibm.com