From e99095cf37b0d0a5700ee7683066762d4484d867 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Thu, 9 Nov 2023 00:37:32 -0800 Subject: [PATCH] Allow weekly release to be tested in isolation (#2644) --- Jenkinsfile | 7 ++++++- README.md | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ec7f9a0ea..2f2ff3952 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -43,6 +43,7 @@ def parsePlugins(plugins) { def pluginsByRepository def lines def fullTestMarkerFile +def weeklyTestMarkerFile stage('prep') { mavenEnv(jdk: 21) { @@ -58,6 +59,7 @@ stage('prep') { } } fullTestMarkerFile = fileExists 'full-test' + weeklyTestMarkerFile = fileExists 'weekly-test' dir('target') { def plugins = readFile('plugins.txt').split('\n') pluginsByRepository = parsePlugins(plugins) @@ -81,9 +83,12 @@ stage('prep') { } } -if (BRANCH_NAME == 'master' || fullTestMarkerFile || env.CHANGE_ID && pullRequest.labels.contains('full-test')) { +if (BRANCH_NAME == 'master' || fullTestMarkerFile || weeklyTestMarkerFile || env.CHANGE_ID && (pullRequest.labels.contains('full-test') || pullRequest.labels.contains('weekly-test'))) { branches = [failFast: false] lines.each {line -> + if (line != 'weekly' && (weeklyTestMarkerFile || env.CHANGE_ID && pullRequest.labels.contains('weekly-test'))) { + return + } pluginsByRepository.each { repository, plugins -> branches["pct-$repository-$line"] = { def jdk = line == 'weekly' ? 21 : 11 diff --git a/README.md b/README.md index 4e9edde94..320b4aeec 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,8 @@ git commit -m 'Run full tests' while keeping the PR in draft until tests pass and this file can be deleted. +Similarly, the `weekly-test` label (or marker file) can be used to run tests on weekly releases in isolation. + To further minimize build time, tests are run only on Linux, against Java 11, and without Docker support. It is unusual but possible for cross-component incompatibilities to only be visible in more specialized environments (such as Windows).