-
Notifications
You must be signed in to change notification settings - Fork 89
[Build] Unify clean-ups jobs as Jenkins pipelines and inline scripts #3322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Build] Unify clean-ups jobs as Jenkins pipelines and inline scripts #3322
Conversation
HannesWell
commented
Sep 14, 2025
- Migrate all clean-up jobs to pure Jenkinsfile/pipeline based jobs.
- Unify the daily clean-up into one job that handles Eclispe and Equinox builds in parallel.
- Move remaining two jobs to the 'Releng' folder as it already contains the manually maintained variant of the clean-up job for release artifacts.
- Automatically run clean-up of release artifacts when promoting a release.
This is a draft as it requires: And a few more things have to be cleaned-up. |
b81ccea
to
18c7393
Compare
This is now almost ready and I was able to remove the need for all parameters of the It also considers the
... to determine if the Y-build p2-repositories should be cleaned up. As suggested in #3328 (comment), this also changes the As a countermeasure, in case a drop should be kept for longer (regardless of Y-build, I-build or even older releases), this now also adds new way to mark a build as kept indefinitely based on If marked as kept indefinitely, all clean-up jobs (the daily one and the one for releases), don't delete these builds, even if they were selected for deletion. |
if (release != latestMinorRelease || (getBuildProperty("${EP_ECLIPSE_DROPS}", release, 'NEXT_JAVA_RELEASE_DATE')?.isEmpty() ?: false)) { | ||
// Delete Y-build p2-repositories for the latest release only if no Java release is scheduled shortly after that release | ||
utilities.removeDropsOnRemote("${EP_ECLIPSE_UPDATES}", ["${versions.version}-Y-builds"]) | ||
} | ||
//TODO: maybe keep always the last 10 children, if this is the latest release? Regardless of a new Java-release is close or not |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This considers the new NEXT_JAVA_RELEASE_DATE
that was introduced with
- [RelEng] Consider next java release date for Y-build schedule #3339
- [RelEng] Split stream, branch and schedule configuration for I/Y builds #3351
... to determine if the Y-build p2-repositories should be cleaned up or if a java release is imminent and the p2-repo should be kept until the next release, just as you said in
@mpalat, @jarthana or @stephan-herrmann, but I think the clean-up of be more robust (i.e. robust against that this variable was accidentally not set when the release cycle was prepared and it wasn't noticed and added afterwards), if we for example would just keep always a sufficient number Y-build p2-repositories created for the latest release, regardless of a Java release is imminent or not. For the final P-builds you usually just use the latest one, don't you?
So my suggest would be to always keep the last 10 Y-build p2-repos of the latest release.
Would that be fine for you as well?
11f6399
to
2eec042
Compare
Unfortunately the I didn't get any response to this and the other questions as the addressees are on vacation or unavailable. |
Migrate all clean-up jobs to pure Jenkinsfile based pipeline jobs. In this process the following enhancements are applied additionally: - Unify the daily clean-up builds into one job that handles Eclipse and Equinox builds in parallel. - Implement the logic for all release/stable and I-build drop removals upon releases into the job for the cleanup of release artifacts, so that it doesn't need any input parameters. - Continuously clean-up Y-build drops, with the policy to keep the last nine builds (corresponds to three consecutive weeks on the regular build schedule). - Introduce the ability to manually mark a as kept-indfinitivly in order to prevent the clean-up jobs from deleting it. - Move the update of the eclipse/updates/index.html to redirect to the update-site of the latest release into the (release) publication job.
2eec042
to
b832bf0
Compare
Sorry for not responding. I personally don't see much need for retaining lots of "old" Y-builds. My only use for previous Y-builds is for comparing test results. And every now and then the latest successful Y-build will be used to produce a P-build. That's it. How Y-builds are consumed by early adopters I simply don't know. |