Skip to content

Commit e42c00a

Browse files
committed
[Build] Add Jenkins pipeline to improve release preparation automation
This introduces a new Jenkins job named `Prepare Next Development Cycle` that carries out many of the preparation tasks and aims to further enhance the release preparation automation. This includes - Updating the version of the Maven parent, all references to it and the Eclipse products - Updating the release version across build scripts - Updating the previous release version to the current Release-Candidate These tasks are currently done partly manually and partly automatically, but through a mixture of the (hidden) Jenkins job to create-milestones and distributed GH workflows that perform the Maven version updates upon the creation of new milestones. Having one central job simplifies to understand the preparation process. It also ensures that the steps are always executed in the right order. The script 'getPreviousRelease.sh' is not considered as it seems to be unused and is intended to be removed soon.
1 parent 5844121 commit e42c00a

File tree

8 files changed

+384
-106
lines changed

8 files changed

+384
-106
lines changed

.github/workflows/README.MD

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ This repository contains some workflows that can be shared across all platform r
66

77
Check if there is currently a freeze period in place.
88

9-
## updateRelease.yml
10-
11-
Workflow that can be used to trigger an automatic update to the next release when a new milestone is created
12-
139
## checkMergeCommits.yml
1410

1511
Check if a PR contains unwanted merge commits.

.github/workflows/prepareRelease.yml

Lines changed: 0 additions & 55 deletions
This file was deleted.

.github/workflows/updateRelease.yml

Lines changed: 0 additions & 40 deletions
This file was deleted.

JenkinsJobs/Releng/FOLDER.groovy

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,30 @@ Releases are published to <a href="https://repo1.maven.org/maven2/org/eclipse/">
5959
scriptPath('JenkinsJobs/Releng/publishToMaven.jenkinsfile')
6060
}
6161
}
62-
}
62+
}
63+
64+
pipelineJob('Releng/prepareNextDevCycle'){
65+
displayName('Prepare Next Development Cycle')
66+
description('Perform all steps to prepare the next development cycle of Eclipse.')
67+
parameters {
68+
booleanParam('DRY_RUN', true, 'If enabled, the final publication of all changes is skipped. Useful for debugging and to very that the pipeline behaves as intended.')
69+
stringParam('NEXT_RELEASE_VERSION', null, 'Version of the release to prepare, for example: 4.37')
70+
stringParam('PREVIOUS_RELEASE_CANDIDATE_ID', null, 'Id of the current release-candiate for the previous release, for example: S-4.36RC2-202505281830')
71+
stringParam('M1_DATE', null, 'Milestone 1 end date in the format yyyy-mm-dd, for example: 2025-07-04')
72+
stringParam('M2_DATE', null, 'Milestone 2 end date in the format yyyy-mm-dd, for example: 2025-07-25')
73+
stringParam('M3_DATE', null, 'Milestone 3 end date in the format yyyy-mm-dd, for example: 2025-08-15')
74+
stringParam('RC1_DATE', null, 'Release-Candidate 1 end date in the format yyyy-mm-dd, for example: 2025-08-22')
75+
stringParam('RC2_DATE', null, 'Release-Candidate 2 end date in the format yyyy-mm-dd, for example: 2025-08-29')
76+
stringParam('GA_DATE', null, 'Final general availability release date in the format yyyy-mm-dd, for example: 2025-09-10')
77+
}
78+
definition {
79+
cpsScm {
80+
lightweight(true)
81+
scm {
82+
github('eclipse-platform/eclipse.platform.releng.aggregator', 'master')
83+
}
84+
scriptPath('JenkinsJobs/Releng/prepareNextDevCycle.jenkinsfile')
85+
}
86+
}
87+
}
88+

0 commit comments

Comments
 (0)