Skip to content

Commit ac49af6

Browse files
committed
[RelEng] Update build configuration in release preparation pipeline
and simplify the definition and activation of the RC schedule: Update the cron-trigger to it's final value immediately. The extra builds are then triggered when the RC period arrives without activating that schedule manually.
1 parent 7a79e2d commit ac49af6

File tree

4 files changed

+39
-23
lines changed

4 files changed

+39
-23
lines changed

JenkinsJobs/Builds/FOLDER.groovy

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,20 @@ for (STREAM in config.Streams){
88
def BRANCH = config.Branches[STREAM]
99

1010
pipelineJob('Builds/I-build-' + STREAM){
11+
//TODO: disable job initially if it doesn't exist before?
1112
description('Daily Eclipse Integration builds.')
1213
properties {
1314
pipelineTriggers {
1415
triggers {
1516
cron {
1617
spec('''TZ=America/Toronto
17-
# format: Minute Hour Day Month Day of the week (0-7)
18-
18+
# format: Minute Hour Day Month Day-of-week (1-7)
1919
# - - - Integration Eclipse SDK builds - - -
20-
# 2025-09 Release Schedule
21-
# Normal : 6 PM every day (11/6 - 27/8)
20+
# Normal Schedule: 6 PM every day
2221
0 18 * * *
2322
24-
25-
# RC Schedule
26-
# Post M3, no nightlies, I-builds only. (Be sure to "turn off" for tests and sign off days)
27-
0 6 15-27 8 5-7,1-3
28-
0 18 15-27 8 5-7,1-3
23+
# RC Schedule: Additional build at 6 AM every day
24+
0 6 15-29 8 *
2925
''')
3026
}
3127
}

JenkinsJobs/Releng/prepareNextDevCycle.jenkinsfile

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ pipeline {
4444
// E.g. next to: https://github.com/eclipse-simrel/.github/blob/main/wiki/SimRel/2025-09.md
4545
def m1Date = parseDate(readParameter('M1_DATE'))
4646
def m2Date = parseDate(readParameter('M2_DATE'))
47-
def m3Date = parseDate(readParameter('M3_DATE'))
47+
m3Date = parseDate(readParameter('M3_DATE'))
4848
def rc1Date = parseDate(readParameter('RC1_DATE'))
49-
def rc2Date = parseDate(readParameter('RC2_DATE'))
49+
rc2Date = parseDate(readParameter('RC2_DATE'))
5050
def gaDate = parseDate(readParameter('GA_DATE'))
5151
if (!(m1Date < m2Date && m2Date < m3Date && m3Date < rc1Date && rc1Date < rc2Date && rc2Date < gaDate)) {
5252
error "Dates are not in strictly ascending order: ${M1_DATE}, ${M2_DATE}, ${M3_DATE}, ${RC1_DATE}, ${RC2_DATE}, ${GA_DATE}"
@@ -120,6 +120,28 @@ pipeline {
120120
replaceInFile('production/testScripts/configuration/streamSpecific.properties', [
121121
"for ${PREVIOUS_RELEASE_VERSION}.0 builds" : "for ${NEXT_RELEASE_VERSION}.0 builds",
122122
])
123+
replaceInFile('JenkinsJobs/JobDSL.json', [
124+
/"${PREVIOUS_RELEASE_VERSION}"/ : /"${NEXT_RELEASE_VERSION}"/,
125+
])
126+
script {
127+
def rcSchedule = null
128+
if (m3Date.monthValue == rc2Date.monthValue) { // RC period is completely within one month
129+
rcSchedule = "0 6 ${m3Date.dayOfMonth}-${rc2Date.dayOfMonth} ${m3Date.monthValue} *"
130+
} else if ((m3Date.monthValue + 1) == rc2Date.monthValue) { // RC period reaches beyond a month boundary
131+
rcSchedule = """\
132+
0 6 ${m3Date.dayOfMonth}-31 ${m3Date.monthValue} *
133+
0 6 1-${rc2Date.dayOfMonth} ${rc2Date.monthValue} *
134+
""".stripIndent().trim()
135+
} else {
136+
error "M3 and RC2 are more than one month apart: m3-month=${m3Date.monthValue}, rc-month=${rc2Date.monthValue}"
137+
}
138+
echo "RC schedule:\n${rcSchedule}"
139+
replaceAllInFile('JenkinsJobs/Builds/FOLDER.groovy', [
140+
// The previous RC periode may extend beyond a month boundary, too
141+
'0 6 [\\d-]+ \\d+ \\*(\\R0 6 [\\d-]+ \\d+ \\*)?' : rcSchedule,
142+
])
143+
//TODO: add Y-build folder !
144+
}
123145

124146
commitAllChangesExcludingSubmodules("Update versions to ${NEXT_RELEASE_VERSION} in build scripts")
125147
}
@@ -331,6 +353,10 @@ pipeline {
331353

332354
@groovy.transform.Field
333355
def githubAPI = null
356+
@groovy.transform.Field
357+
def m3Date = null
358+
@groovy.transform.Field
359+
def rc2Date = null
334360

335361
// --- utility methods
336362

JenkinsJobs/YBuilds/FOLDER.groovy

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,18 @@ for (STREAM in config.Streams){
99
def BRANCH = config.Branches[STREAM]
1010

1111
pipelineJob('YPBuilds/Y-build-' + STREAM){
12+
//TODO: disable job initially if it doesn't exist before?
1213
description('Daily Maintenance Builds.')
1314
properties {
1415
pipelineTriggers {
1516
triggers {
1617
cron {
1718
spec('''TZ=America/Toronto
18-
# format: Minute Hour Day Month Day of the week (0-7)
19-
20-
#Daily Y-build
21-
0 10 * * *
22-
#milestone week
23-
#0 6 * * 2
24-
#0 6 * * 4
25-
#
26-
#0 2 21 7 4
19+
# format: Minute Hour Day Month Day-of-week (1-7)
20+
# Normal Schedule: 10 AM every second day
21+
0 10 * * 2,4,6
22+
# RC Schedule: 10 AM every day
23+
0 10 15-29 8 *
2724
''')
2825
}
2926
}

RELEASE.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
## Milestone and RC Releases
66

77
### Friday before release week:
8-
* Update [I-builds job definition](JenkinsJobs/Builds/FOLDER.groovy) to build on the milestone schedule (Twice daily at 06:00 EST and 18:00 EST except Thursday).
98
* Create or update prerequisite issues for tracking ECF, EMF and Orbit
109
* Send reminder email for upcoming RC week to [email protected], [email protected], [email protected] and [email protected]
1110
* [Example from 4.30 RC1](https://www.eclipse.org/lists/platform-dev/msg03924.html) but the usual schedule:
@@ -49,9 +48,7 @@
4948
4. Update the Location property to the "Specific repository for building against" in the mailtemplate.txt from promotion.
5049
5. Commit Simrel updates to Gerrit
5150
- Message should use year-month format, i.e "Simrel updates for Eclipse and Equinox for 2022-06 M1"
52-
* For **Milestone builds** return the I-builds to the normal schedule.
5351
* **After RC1**
54-
* Leave the I-builds running on the milestone schedule for RC2.
5552
* Comment on EMF, ECF and Orbit issues to ask for final release builds.
5653
* **After RC2**
5754
* (optional) Disable the automatic [nightly cleanup](https://ci.eclipse.org/releng/job/Cleanup/job/dailyCleanOldBuilds/) of I-builds

0 commit comments

Comments
 (0)