From 297f8dcd62548a92e176fa5e059ac52decb91f01 Mon Sep 17 00:00:00 2001 From: Adam Farley Date: Fri, 1 Sep 2023 12:52:57 +0100 Subject: [PATCH 1/2] This allows us to run unpublished builds with the weekly test set In the long run we should find a neater way to run ea specific-tagged-level build testing. Perhaps when all of Adoptium's builds are ea (and nightly/weekly becomes an unused concept), we could have a single test list for all builds. This seems a good solution in the short term though. Signed-off-by: Adam Farley --- pipelines/build/common/build_base_file.groovy | 2 +- pipelines/jobs/pipeline_job_template.groovy | 2 +- pipelines/jobs/weekly_release_pipeline_job_template.groovy | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pipelines/build/common/build_base_file.groovy b/pipelines/build/common/build_base_file.groovy index a5b350595..50e2183bb 100644 --- a/pipelines/build/common/build_base_file.groovy +++ b/pipelines/build/common/build_base_file.groovy @@ -257,7 +257,7 @@ class Builder implements Serializable { */ if (configuration.containsKey('test') && configuration.get('test')) { def testJobType = 'nightly' - if (releaseType.equals('Weekly') || releaseType.equals('Release')) { + if (releaseType.startsWith('Weekly') || releaseType.equals('Release')) { testJobType = 'weekly' } if (isMap(configuration.test)) { diff --git a/pipelines/jobs/pipeline_job_template.groovy b/pipelines/jobs/pipeline_job_template.groovy index 26baf0f15..3e8e0a758 100644 --- a/pipelines/jobs/pipeline_job_template.groovy +++ b/pipelines/jobs/pipeline_job_template.groovy @@ -96,7 +96,7 @@ pipelineJob("${BUILD_FOLDER}/${JOB_NAME}") { stringParam('dockerExcludes', '', 'Map of targetConfigurations to exclude from docker building. If a targetConfiguration (i.e. { "x64LinuxXL": [ "openj9" ], "aarch64Linux": [ "hotspot", "openj9" ] }) has been entered into this field, jenkins will build the jdk without using docker. This param overrides the dockerImage and dockerFile downstream job parameters.') stringParam('baseFilePath', '', "Relative path to where the build_base_file.groovy file is located. This runs the downstream job setup and configuration retrieval services.
Default: ${defaultsJson['baseFileDirectories']['upstream']}") stringParam('buildConfigFilePath', '', "Relative path to where the jdkxx_pipeline_config.groovy file is located. It contains the build configurations for each platform, architecture and variant.
Default: ${defaultsJson['configDirectories']['build']}/jdkxx_pipeline_config.groovy") - choiceParam('releaseType', [jobReleaseType, 'Nightly', 'Nightly Without Publish', 'Weekly', 'Release'].unique(), 'Nightly - release a standard nightly build.
Nightly Without Publish - run a nightly but do not publish.
Weekly - release a standard weekly build, run with extended tests.
Release - this is a release, this will need to be manually promoted.') + choiceParam('releaseType', [jobReleaseType, 'Nightly', 'Nightly Without Publish', 'Weekly', 'Weekly Without Publish', 'Release'].unique(), 'Nightly - release a standard nightly build.
Nightly Without Publish - run a nightly but do not publish.
Weekly - release a standard weekly build, run with extended tests.
Release - this is a release, this will need to be manually promoted.') stringParam('overridePublishName', '', 'REQUIRED for OpenJ9: Name that determines the publish name (and is used by the meta-data file), defaults to scmReference(minus _adopt if present).
Nightly builds: Leave blank (defaults to a date_time stamp).
OpenJ9 Release build Java 8 example jdk8u192-b12_openj9-0.12.1 and for OpenJ9 Java 11 example jdk-11.0.2+9_openj9-0.12.1.') stringParam('scmReference', '', 'Tag name or Branch name from which openjdk source code repo to build. Nightly builds: Defaults to, Hotspot=dev, OpenJ9=openj9, others=master.
Release builds: For hotspot JDK8 this would be the OpenJDK tag, for hotspot JDK11+ this would be the Adopt merge tag for the desired OpenJDK tag eg.jdk-11.0.4+10_adopt, and for OpenJ9 this will be the release branch, eg.openj9-0.14.0.') stringParam('buildReference', '', 'SHA1 or Tag name or Branch name of temurin-build repo. Defaults to master') diff --git a/pipelines/jobs/weekly_release_pipeline_job_template.groovy b/pipelines/jobs/weekly_release_pipeline_job_template.groovy index a981050e1..97e14233f 100644 --- a/pipelines/jobs/weekly_release_pipeline_job_template.groovy +++ b/pipelines/jobs/weekly_release_pipeline_job_template.groovy @@ -40,7 +40,7 @@ pipelineJob("${BUILD_FOLDER}/${JOB_NAME}") { parameters { stringParam('buildPipeline', "${BUILD_FOLDER}/${PIPELINE}", 'The build pipeline to invoke.') - choiceParam('releaseType', [pipelineReleaseType, 'Nightly', 'Nightly Without Publish', 'Weekly', 'Release'].unique(), 'Nightly - release a standard nightly build.
Nightly Without Publish - run a nightly but do not publish.
Weekly - release a standard weekly build, run with extended tests.
Release - this is a release, this will need to be manually promoted.') + choiceParam('releaseType', [pipelineReleaseType, 'Nightly', 'Nightly Without Publish', 'Weekly', 'Weekly Without Publish', 'Release'].unique(), 'Nightly - release a standard nightly build.
Nightly Without Publish - run a nightly but do not publish.
Weekly - release a standard weekly build, run with extended tests.
Release - this is a release, this will need to be manually promoted.') textParam('scmReferences', JsonOutput.prettyPrint(JsonOutput.toJson(weekly_release_scmReferences)), 'The map of scmReferences for each variant.') textParam('targetConfigurations', JsonOutput.prettyPrint(JsonOutput.toJson(targetConfigurations)), 'The map of platforms and variants to build.') } From 5bc7cd00a33bf457076b029329f13bbd2f87abc7 Mon Sep 17 00:00:00 2001 From: Adam Farley Date: Fri, 1 Sep 2023 13:17:20 +0100 Subject: [PATCH 2/2] Adding comments --- pipelines/jobs/pipeline_job_template.groovy | 2 +- pipelines/jobs/weekly_release_pipeline_job_template.groovy | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pipelines/jobs/pipeline_job_template.groovy b/pipelines/jobs/pipeline_job_template.groovy index 3e8e0a758..f4bdc0437 100644 --- a/pipelines/jobs/pipeline_job_template.groovy +++ b/pipelines/jobs/pipeline_job_template.groovy @@ -96,7 +96,7 @@ pipelineJob("${BUILD_FOLDER}/${JOB_NAME}") { stringParam('dockerExcludes', '', 'Map of targetConfigurations to exclude from docker building. If a targetConfiguration (i.e. { "x64LinuxXL": [ "openj9" ], "aarch64Linux": [ "hotspot", "openj9" ] }) has been entered into this field, jenkins will build the jdk without using docker. This param overrides the dockerImage and dockerFile downstream job parameters.') stringParam('baseFilePath', '', "Relative path to where the build_base_file.groovy file is located. This runs the downstream job setup and configuration retrieval services.
Default: ${defaultsJson['baseFileDirectories']['upstream']}") stringParam('buildConfigFilePath', '', "Relative path to where the jdkxx_pipeline_config.groovy file is located. It contains the build configurations for each platform, architecture and variant.
Default: ${defaultsJson['configDirectories']['build']}/jdkxx_pipeline_config.groovy") - choiceParam('releaseType', [jobReleaseType, 'Nightly', 'Nightly Without Publish', 'Weekly', 'Weekly Without Publish', 'Release'].unique(), 'Nightly - release a standard nightly build.
Nightly Without Publish - run a nightly but do not publish.
Weekly - release a standard weekly build, run with extended tests.
Release - this is a release, this will need to be manually promoted.') + choiceParam('releaseType', [jobReleaseType, 'Nightly', 'Nightly Without Publish', 'Weekly', 'Weekly Without Publish', 'Release'].unique(), 'Nightly - release a standard nightly build.
Nightly Without Publish - run a nightly but do not publish.
Weekly - release a standard weekly build, run with extended tests.
Weekly - run a weekly but do not publish.
Release - this is a release, this will need to be manually promoted.') stringParam('overridePublishName', '', 'REQUIRED for OpenJ9: Name that determines the publish name (and is used by the meta-data file), defaults to scmReference(minus _adopt if present).
Nightly builds: Leave blank (defaults to a date_time stamp).
OpenJ9 Release build Java 8 example jdk8u192-b12_openj9-0.12.1 and for OpenJ9 Java 11 example jdk-11.0.2+9_openj9-0.12.1.') stringParam('scmReference', '', 'Tag name or Branch name from which openjdk source code repo to build. Nightly builds: Defaults to, Hotspot=dev, OpenJ9=openj9, others=master.
Release builds: For hotspot JDK8 this would be the OpenJDK tag, for hotspot JDK11+ this would be the Adopt merge tag for the desired OpenJDK tag eg.jdk-11.0.4+10_adopt, and for OpenJ9 this will be the release branch, eg.openj9-0.14.0.') stringParam('buildReference', '', 'SHA1 or Tag name or Branch name of temurin-build repo. Defaults to master') diff --git a/pipelines/jobs/weekly_release_pipeline_job_template.groovy b/pipelines/jobs/weekly_release_pipeline_job_template.groovy index 97e14233f..9e3aebf62 100644 --- a/pipelines/jobs/weekly_release_pipeline_job_template.groovy +++ b/pipelines/jobs/weekly_release_pipeline_job_template.groovy @@ -40,7 +40,7 @@ pipelineJob("${BUILD_FOLDER}/${JOB_NAME}") { parameters { stringParam('buildPipeline', "${BUILD_FOLDER}/${PIPELINE}", 'The build pipeline to invoke.') - choiceParam('releaseType', [pipelineReleaseType, 'Nightly', 'Nightly Without Publish', 'Weekly', 'Weekly Without Publish', 'Release'].unique(), 'Nightly - release a standard nightly build.
Nightly Without Publish - run a nightly but do not publish.
Weekly - release a standard weekly build, run with extended tests.
Release - this is a release, this will need to be manually promoted.') + choiceParam('releaseType', [pipelineReleaseType, 'Nightly', 'Nightly Without Publish', 'Weekly', 'Weekly Without Publish', 'Release'].unique(), 'Nightly - release a standard nightly build.
Nightly Without Publish - run a nightly but do not publish.
Weekly - release a standard weekly build, run with extended tests.
Weekly - run a weekly but do not publish.
Release - this is a release, this will need to be manually promoted.') textParam('scmReferences', JsonOutput.prettyPrint(JsonOutput.toJson(weekly_release_scmReferences)), 'The map of scmReferences for each variant.') textParam('targetConfigurations', JsonOutput.prettyPrint(JsonOutput.toJson(targetConfigurations)), 'The map of platforms and variants to build.') }