diff --git a/JenkinsJobs/AutomatedTests/I_unit_tests.groovy b/JenkinsJobs/AutomatedTests/I_unit_tests.groovy
index 2013b1f1f16..34e8fb34d23 100644
--- a/JenkinsJobs/AutomatedTests/I_unit_tests.groovy
+++ b/JenkinsJobs/AutomatedTests/I_unit_tests.groovy
@@ -8,7 +8,7 @@ def TEST_CONFIGURATIONS = [
[os: 'win32' , ws:'win32', arch: 'x86_64' , javaVersion: 21, agentLabel: 'qa6xd-win11' , javaHome: "'C:\\\\Program Files\\\\Eclipse Adoptium\\\\jdk-21.0.5.11-hotspot'" ],
]
-for (STREAM in config.Branches.keySet()){
+for (STREAM in config.I.streams.keySet()){
def MAJOR = STREAM.split('\\.')[0]
def MINOR = STREAM.split('\\.')[1]
for (TEST_CONFIG in TEST_CONFIGURATIONS){
diff --git a/JenkinsJobs/Builds/FOLDER.groovy b/JenkinsJobs/Builds/FOLDER.groovy
index 0001f1bd13c..8dc57010458 100644
--- a/JenkinsJobs/Builds/FOLDER.groovy
+++ b/JenkinsJobs/Builds/FOLDER.groovy
@@ -4,9 +4,7 @@ folder('Builds') {
description('Eclipse periodic build jobs.')
}
-for (entry in config.Branches.entrySet()){
- def STREAM = entry.key
- def BRANCH = entry.value
+config.I.streams.each{ STREAM, configuration ->
pipelineJob('Builds/I-build-' + STREAM){
description('Daily Eclipse Integration builds.')
@@ -14,13 +12,12 @@ for (entry in config.Branches.entrySet()){
pipelineTriggers {
triggers {
cron {
- spec('''TZ=America/Toronto
+ spec(configuration.schedule ? """TZ=America/Toronto
# Format: Minute Hour Day Month Day-of-week (1-7)
# - - - Integration Eclipse SDK builds - - -
# Schedule: 6 PM every day until end of RC2
-0 18 * 8-10 *
-0 18 1-26 11 *
-''')
+${configuration.schedule}
+""" : '')
}
}
}
@@ -29,7 +26,7 @@ for (entry in config.Branches.entrySet()){
cpsScm {
lightweight(true)
scm {
- github('eclipse-platform/eclipse.platform.releng.aggregator', BRANCH)
+ github('eclipse-platform/eclipse.platform.releng.aggregator', configuration.branch)
}
scriptPath('JenkinsJobs/Builds/build.jenkinsfile')
}
diff --git a/JenkinsJobs/JobDSL.json b/JenkinsJobs/JobDSL.json
index fec5b3240fc..8dc05ee3bfd 100644
--- a/JenkinsJobs/JobDSL.json
+++ b/JenkinsJobs/JobDSL.json
@@ -1,5 +1,19 @@
{
- "Branches": {
- "4.38": "master"
+ "I": {
+ "streams": {
+ "4.38": {
+ "branch": "master",
+ "schedule": "0 18 * 8-10 *\n0 18 1-26 11 *"
+ }
+ }
+ },
+ "Y": {
+ "streams": {
+ "4.38": {
+ "branch": "master",
+ "disabled": "true",
+ "schedule": "0 10 * 8-10 2,4,6\n0 10 1-26 11 2,4,6"
+ }
+ }
}
-}
\ No newline at end of file
+}
diff --git a/JenkinsJobs/Releng/FOLDER.groovy b/JenkinsJobs/Releng/FOLDER.groovy
index 3444de28643..bc6a3ee4873 100644
--- a/JenkinsJobs/Releng/FOLDER.groovy
+++ b/JenkinsJobs/Releng/FOLDER.groovy
@@ -88,7 +88,7 @@ Useful for debugging and to very that the pipeline behaves as intended.
stringParam('RC1_DATE', null, 'Release-Candidate 1 end date in the format yyyy-mm-dd, for example: 2025-08-22')
stringParam('RC2_DATE', null, 'Release-Candidate 2 end date in the format yyyy-mm-dd, for example: 2025-08-29')
stringParam('GA_DATE', null, 'Final general availability release date in the format yyyy-mm-dd, for example: 2025-09-10')
- stringParam('NEXT_JAVA_RELEASE_DATE', null, 'Release date of the next nww Java version, if it is released shortly after the Eclipse release (i.e. shortly after the GA_DATE specified above, usually for odd release versions), else left blank (usually for even releases). Value is in the format yyyy-mm-dd, for example: 2025-09-16')
+ stringParam('NEXT_JAVA_RELEASE_DATE', null, 'Release date of the next Java version, if it is released shortly after the Eclipse release (i.e. shortly after the GA_DATE specified above, usual for odd release versions), else left blank (usual for even releases). Value is in the format yyyy-mm-dd, for example: 2025-09-16')
}
definition {
cpsScm {
diff --git a/JenkinsJobs/Releng/prepareNextDevCycle.jenkinsfile b/JenkinsJobs/Releng/prepareNextDevCycle.jenkinsfile
index ddc45c97df6..41a46aa9218 100644
--- a/JenkinsJobs/Releng/prepareNextDevCycle.jenkinsfile
+++ b/JenkinsJobs/Releng/prepareNextDevCycle.jenkinsfile
@@ -29,6 +29,10 @@ pipeline {
nextVersionMatcher = null // release matcher as it's not serializable
env.PREVIOUS_RELEASE_CANDIDATE_ID = readParameter('PREVIOUS_RELEASE_CANDIDATE_ID')
+ def buildPropertiesTxt = sh(script: "curl --fail https://download.eclipse.org/eclipse/downloads/drops4/${PREVIOUS_RELEASE_CANDIDATE_ID}/buildproperties.txt", returnStdout: true)
+ def buildProperties = readProperties(text: buildPropertiesTxt)
+ assignEnvVariable('IS_JAVA_RELEASE_IMMINENT', !buildProperties.NEXT_JAVA_RELEASE_DATE.replace('"','').isEmpty()) // Remove surrounding quotes
+
def previousIdMatcher = null
if ((previousIdMatcher = env.PREVIOUS_RELEASE_CANDIDATE_ID =~ /(?[SR])-(?\d+)\.(?\d+)(\.(?\d+))?(?(M|RC)\d+[a-z]?)?-(?\d{8})(?