Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 90 additions & 2 deletions JenkinsJobs/Releng/FOLDER.groovy
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
folder('Releng') {
description('Jobs related to routine releng tasks. Some are periodic, some are "manual" jobs ran only when needed.')
description('Jobs related to routine releng tasks. Some are periodic, some are "manual" jobs ran only when needed.')
}

pipelineJob('Releng/PublishToMaven'){
Expand Down Expand Up @@ -48,7 +48,7 @@ Snapshots are published to <a href="https://repo.eclipse.org/content/repositorie
Releases are published to <a href="https://repo1.maven.org/maven2/org/eclipse/">Maven central</a> by publishing to a <a href="https://oss.sonatype.org/#stagingRepositories">staging repository</a>.
</li>
</ul>
''')
''')
}
definition {
cpsScm {
Expand Down Expand Up @@ -86,3 +86,91 @@ pipelineJob('Releng/prepareNextDevCycle'){
}
}

pipelineJob('Releng/renameAndPromote'){
displayName('Rename and Promote')
description('''\
This job does the "stage 1" or first part of a promotion.
It renames the files for Equinox and Eclipse, creates an appropriate repo on 'downloads', rsync's everything to 'downloads', but leave everything "invisible" -- unless someone knows the exact URL.
This allows two things. First, allows artifacts some time to "mirror" when that is needed.
But also, allows the sites and repositories to be examined for correctness before making them visible to the world.
The second (deferred) step that makes things visible works, in part, based on some output of this first step. Hence, they must "share a workspace".
''')
parameters {
stringParam('DROP_ID', null, '''\
The name (or, build id) of the build to rename and promote. Typically would be a value such as I20160530-2000 or M20160912-1000.
It must match the name of the build on the build machine.
''')
stringParam('CHECKPOINT', null, 'M1, M3, RC1, RC2, RC3 etc (blank for final releases).')
stringParam('SIGNOFF_BUG', null, 'The issue that was used to "signoff" the checkpoint. If there are no unit test failures, this can be left blank. Otherwise a link is added to test page explaining that "failing unit tests have been investigated".')
stringParam('TRAIN_NAME', null, 'The name of the release stream, typically yyyy-mm. For example: 2022-09')
stringParam('STREAM', null, 'Needs to be all three files of primary version for the release, such as 4.7.1 or 4.8.0.')
stringParam('DL_TYPE', null, "This is the build type we are promoting TO. I-builds promote to 'S' until 'R'.")
stringParam('TAG', null, ''' For passing to the tagEclipseRelease job.
R is used for release builds. For example: R4_25
S is used for milestones and includes the milestone version. For example: S4_25_0_RC2
''')
}
definition {
cpsScm {
lightweight(true)
scm {
github('eclipse-platform/eclipse.platform.releng.aggregator', 'master')
}
scriptPath('JenkinsJobs/Releng/renameAndPromote.jenkinsfile')
}
}
}

pipelineJob('Releng/tagEclipseRelease'){
displayName('Tag Eclipse Release')
description('Tag promoted builds.')
parameters {
stringParam('tag', null, '''\
R is used for release builds. For example: R4_25
S is used for milestones and includes the milestone version. For example: S4_25_0_RC2
''')
stringParam('buildID', null, 'I-build ID of the build that was promoted, for example: I20220831-1800')
stringParam('annotation', null, '''\
GitHub issue to track tagging the release, for example:
'https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/issues/3058' - Tag Eclipse 4.36 release
''')
}
definition {
cpsScm {
lightweight(true)
scm {
github('eclipse-platform/eclipse.platform.releng.aggregator', 'master')
}
scriptPath('JenkinsJobs/Releng/tagEclipseRelease.jenkinsfile')
}
}
}

pipelineJob('Releng/makeVisible'){
displayName('Make Visible')
description('''\
The first part of doing a promotion -- the Rename And Promote job -- creates some scripts that make this deferred "make visible" part possible.
Therefore, they have to share a 'workspace', and the output of the first job must remain in place until its time to "make visible".
''')
parameters {
stringParam('DROP_ID', null, '''\
The name (or, build id) of the build to rename and promote. Typically would be a value such as I20160530-2000 or M20160912-1000.
It must match the name of the build on the build machine.
''')
stringParam('CHECKPOINT', null, 'M1, M3, RC1, RC2, RC3 etc (blank for final releases).')
stringParam('SIGNOFF_BUG', null, 'The issue that was used to "signoff" the checkpoint. If there are no unit test failures, this can be left blank. Otherwise a link is added to test page explaining that "failing unit tests have been investigated".')
stringParam('TRAIN_NAME', null, 'The name of the release stream, typically yyyy-mm. For example: 2022-09')
stringParam('STREAM', null, 'Needs to be all three files of primary version for the release, such as 4.7.1 or 4.8.0.')
stringParam('DL_TYPE', null, "This is the build type we are promoting TO. I-builds promote to 'S' until 'R'.")
}
definition {
cpsScm {
lightweight(true)
scm {
github('eclipse-platform/eclipse.platform.releng.aggregator', 'master')
}
scriptPath('JenkinsJobs/Releng/makeVisible.jenkinsfile')
}
}
}

64 changes: 0 additions & 64 deletions JenkinsJobs/Releng/makeVisible.groovy

This file was deleted.

25 changes: 25 additions & 0 deletions JenkinsJobs/Releng/makeVisible.jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
pipeline {
options {
skipDefaultCheckout()
timestamps()
timeout(time: 15, unit: 'MINUTES')
buildDiscarder(logRotator(numToKeepStr:'5'))
}
agent {
label 'basic'
}
stages {
stage('Make visible') {
steps {
sshagent(['projects-storage.eclipse.org-bot-ssh', 'github-bot-ssh']) {
sh '''
curl -o makeVisible.sh https://download.eclipse.org/eclipse/relengScripts/cje-production/promotion/makeVisible.sh
chmod +x makeVisible.sh
./makeVisible.sh
'''
}
build job: 'Releng/updateIndex', wait: false
}
}
}
}
75 changes: 0 additions & 75 deletions JenkinsJobs/Releng/renameAndPromote.groovy

This file was deleted.

34 changes: 34 additions & 0 deletions JenkinsJobs/Releng/renameAndPromote.jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
pipeline {
options {
skipDefaultCheckout()
timestamps()
timeout(time: 120, unit: 'MINUTES')
buildDiscarder(logRotator(numToKeepStr:'5'))
}
agent {
label 'basic'
}
stages {
stage('Rename and Promote') {
steps {
sshagent(['projects-storage.eclipse.org-bot-ssh']) {
sh '''#!/bin/bash -x
curl -o promoteSites.sh https://download.eclipse.org/eclipse/relengScripts/cje-production/promotion/promoteSites.sh
chmod +x promoteSites.sh
./promoteSites.sh
'''
}
build job: 'Releng/tagEclipseRelease', wait: true, propagate: true, parameters: [
string(name: 'tag', value: "${TAG}"),
string(name: 'buildID', value: "${DROP_ID}"),
string(name: 'annotation', value: "${ params.SIGNOFF_BUG ? 'https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/issues/' + params.SIGNOFF_BUG : '' }")
]
}
}
}
post {
always {
archiveArtifacts '**/stage2output*/**'
}
}
}
Loading
Loading