Skip to content

Commit

Permalink
Add support for the AdoptOpenJDK Tests repository to Jenkins pipelines
Browse files Browse the repository at this point in the history
Add the AdoptOpenJDK Tests repository and branch to the variables file.
Pass to the downstream jobs the URL and the branch of the AdoptOpenJDK
Testing repository.

[ci skip]

Signed-off-by: Violeta Sebe <vsebe@ca.ibm.com>
  • Loading branch information
vsebe committed Feb 5, 2019
1 parent f83e933 commit 27b84c4
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 10 deletions.
14 changes: 9 additions & 5 deletions buildenv/jenkins/common/pipeline-functions
Expand Up @@ -191,7 +191,7 @@ def build(BUILD_JOB_NAME, OPENJDK_REPO, OPENJDK_BRANCH, OPENJDK_SHA, OPENJ9_REPO
}
}

def build_with_one_upstream(JOB_NAME, UPSTREAM_JOB_NAME, UPSTREAM_JOB_NUMBER, VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID, NODE, OPENJ9_REPO, OPENJ9_BRANCH, OPENJ9_SHA, VENDOR_TEST_REPOS, VENDOR_TEST_BRANCHES, VENDOR_TEST_SHAS, VENDOR_TEST_DIRS, USER_CREDENTIALS_ID, BUILD_LIST, TEST_FLAG, BUILD_IDENTIFIER, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER) {
def build_with_one_upstream(JOB_NAME, UPSTREAM_JOB_NAME, UPSTREAM_JOB_NUMBER, VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID, NODE, OPENJ9_REPO, OPENJ9_BRANCH, OPENJ9_SHA, VENDOR_TEST_REPOS, VENDOR_TEST_BRANCHES, VENDOR_TEST_SHAS, VENDOR_TEST_DIRS, USER_CREDENTIALS_ID, BUILD_LIST, TEST_FLAG, BUILD_IDENTIFIER, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER, ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH) {
stage ("${JOB_NAME}") {
return build_with_slack(JOB_NAME, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER,
[string(name: 'UPSTREAM_JOB_NAME', value: UPSTREAM_JOB_NAME),
Expand All @@ -201,6 +201,8 @@ def build_with_one_upstream(JOB_NAME, UPSTREAM_JOB_NAME, UPSTREAM_JOB_NUMBER, VA
string(name: 'VENDOR_BRANCH', value: VENDOR_BRANCH),
string(name: 'VENDOR_CREDENTIALS_ID', value: VENDOR_CREDENTIALS_ID),
string(name: 'LABEL', value: NODE),
string(name: 'ADOPTOPENJDK_REPO', value: ADOPTOPENJDK_REPO),
string(name: 'ADOPTOPENJDK_BRANCH', value: ADOPTOPENJDK_BRANCH),
string(name: 'OPENJ9_REPO', value: OPENJ9_REPO),
string(name: 'OPENJ9_BRANCH', value: OPENJ9_BRANCH),
string(name: 'OPENJ9_SHA', value: OPENJ9_SHA),
Expand All @@ -217,14 +219,16 @@ def build_with_one_upstream(JOB_NAME, UPSTREAM_JOB_NAME, UPSTREAM_JOB_NUMBER, VA
}
}

def build_with_artifactory(JOB_NAME, VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID, NODE, OPENJ9_REPO, OPENJ9_BRANCH, OPENJ9_SHA, VENDOR_TEST_REPOS, VENDOR_TEST_BRANCHES, VENDOR_TEST_SHAS, VENDOR_TEST_DIRS, USER_CREDENTIALS_ID, BUILD_LIST, CUSTOMIZED_SDK_URL, ARTIFACTORY_SERVER, ARTIFACTORY_CREDS, TEST_FLAG, BUILD_IDENTIFIER, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER) {
def build_with_artifactory(JOB_NAME, VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID, NODE, OPENJ9_REPO, OPENJ9_BRANCH, OPENJ9_SHA, VENDOR_TEST_REPOS, VENDOR_TEST_BRANCHES, VENDOR_TEST_SHAS, VENDOR_TEST_DIRS, USER_CREDENTIALS_ID, BUILD_LIST, CUSTOMIZED_SDK_URL, ARTIFACTORY_SERVER, ARTIFACTORY_CREDS, TEST_FLAG, BUILD_IDENTIFIER, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER, ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH) {
stage ("${JOB_NAME}") {
return build_with_slack(JOB_NAME, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER,
[string(name: 'VARIABLE_FILE', value: VARIABLE_FILE),
string(name: 'VENDOR_REPO', value: VENDOR_REPO),
string(name: 'VENDOR_BRANCH', value: VENDOR_BRANCH),
string(name: 'VENDOR_CREDENTIALS_ID', value: VENDOR_CREDENTIALS_ID),
string(name: 'LABEL', value: NODE),
string(name: 'ADOPTOPENJDK_REPO', value: ADOPTOPENJDK_REPO),
string(name: 'ADOPTOPENJDK_BRANCH', value: ADOPTOPENJDK_BRANCH),
string(name: 'OPENJ9_REPO', value: OPENJ9_REPO),
string(name: 'OPENJ9_BRANCH', value: OPENJ9_BRANCH),
string(name: 'OPENJ9_SHA', value: OPENJ9_SHA),
Expand Down Expand Up @@ -320,7 +324,7 @@ def build_with_slack(DOWNSTREAM_JOB_NAME, ghprbGhRepository, ghprbActualCommit,
return JOB
}

def workflow(SDK_VERSION, SPEC, SHAS, OPENJDK_REPO, OPENJDK_BRANCH, OPENJ9_REPO, OPENJ9_BRANCH, OMR_REPO, OMR_BRANCH, TESTS_TARGETS, VENDOR_TEST_REPOS_MAP, VENDOR_TEST_BRANCHES_MAP, VENDOR_TEST_DIRS_MAP, USER_CREDENTIALS_ID, BUILD_LIST, SETUP_LABEL, ghprbGhRepository, ghprbActualCommit, EXTRA_GETSOURCE_OPTIONS, EXTRA_CONFIGURE_OPTIONS, EXTRA_MAKE_OPTION, OPENJDK_CLONE_DIR) {
def workflow(SDK_VERSION, SPEC, SHAS, OPENJDK_REPO, OPENJDK_BRANCH, OPENJ9_REPO, OPENJ9_BRANCH, OMR_REPO, OMR_BRANCH, TESTS_TARGETS, VENDOR_TEST_REPOS_MAP, VENDOR_TEST_BRANCHES_MAP, VENDOR_TEST_DIRS_MAP, USER_CREDENTIALS_ID, BUILD_LIST, SETUP_LABEL, ghprbGhRepository, ghprbActualCommit, EXTRA_GETSOURCE_OPTIONS, EXTRA_CONFIGURE_OPTIONS, EXTRA_MAKE_OPTION, OPENJDK_CLONE_DIR, ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH) {
def jobs = [:]

// Set ghprbGhRepository and ghprbActualCommit for the purposes of Github commit status updates
Expand Down Expand Up @@ -384,9 +388,9 @@ def workflow(SDK_VERSION, SPEC, SHAS, OPENJDK_REPO, OPENJDK_BRANCH, OPENJ9_REPO,
def TEST_JOB_NAME = "Test-${name}-JDK${SDK_VERSION}-${SPEC}"
testjobs["${TEST_JOB_NAME}"] = {
if (ARTIFACTORY_CREDS) {
jobs["${TEST_JOB_NAME}"] = build_with_artifactory(TEST_JOB_NAME, VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID, TEST_NODE, OPENJ9_REPO, OPENJ9_BRANCH, SHAS['OPENJ9'], VENDOR_TEST_REPOS, VENDOR_TEST_BRANCHES, VENDOR_TEST_SHAS, VENDOR_TEST_DIRS, USER_CREDENTIALS_ID, BUILD_LIST, CUSTOMIZED_SDK_URL, ARTIFACTORY_SERVER, ARTIFACTORY_CREDS, TEST_FLAG, BUILD_IDENTIFIER, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER)
jobs["${TEST_JOB_NAME}"] = build_with_artifactory(TEST_JOB_NAME, VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID, TEST_NODE, OPENJ9_REPO, OPENJ9_BRANCH, SHAS['OPENJ9'], VENDOR_TEST_REPOS, VENDOR_TEST_BRANCHES, VENDOR_TEST_SHAS, VENDOR_TEST_DIRS, USER_CREDENTIALS_ID, BUILD_LIST, CUSTOMIZED_SDK_URL, ARTIFACTORY_SERVER, ARTIFACTORY_CREDS, TEST_FLAG, BUILD_IDENTIFIER, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER, ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH)
} else {
jobs["${TEST_JOB_NAME}"] = build_with_one_upstream(TEST_JOB_NAME, BUILD_JOB_NAME, jobs["build"].getNumber(), VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID, TEST_NODE, OPENJ9_REPO, OPENJ9_BRANCH, SHAS['OPENJ9'], VENDOR_TEST_REPOS, VENDOR_TEST_BRANCHES, VENDOR_TEST_SHAS, VENDOR_TEST_DIRS, USER_CREDENTIALS_ID, BUILD_LIST, TEST_FLAG, BUILD_IDENTIFIER, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER)
jobs["${TEST_JOB_NAME}"] = build_with_one_upstream(TEST_JOB_NAME, BUILD_JOB_NAME, jobs["build"].getNumber(), VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID, TEST_NODE, OPENJ9_REPO, OPENJ9_BRANCH, SHAS['OPENJ9'], VENDOR_TEST_REPOS, VENDOR_TEST_BRANCHES, VENDOR_TEST_SHAS, VENDOR_TEST_DIRS, USER_CREDENTIALS_ID, BUILD_LIST, TEST_FLAG, BUILD_IDENTIFIER, ghprbGhRepository, ghprbActualCommit, GITHUB_SERVER, ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH)
}
}
}
Expand Down
55 changes: 55 additions & 0 deletions buildenv/jenkins/common/variables-functions
Expand Up @@ -517,6 +517,7 @@ def set_job_properties(JOB_TYPE) {
* strings: OPENJDK_REPO, OPENJDK_BRANCH, OPENJDK_SHA,
* OPENJ9_REPO, OPENJ9_BRANCH, OPENJ9_SHA,
* OMR_REPO, OMR_BRANCH, OMR_SHA,
* ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH,
* VARIABLE_FILE, VENDOR_REPO, VENDOR_BRANCH, VENDOR_CREDENTIALS_ID
* - Build or PR or Pipeline
* Choices: SDK_VERSION, PLATFORM
Expand Down Expand Up @@ -616,6 +617,8 @@ def set_job_properties(JOB_TYPE) {
'OMR_REPO':'',
'OMR_BRANCH':'',
'OMR_SHA':'',
'ADOPTOPENJDK_REPO':'',
'ADOPTOPENJDK_BRANCH':'',
'VARIABLE_FILE':"${VARIABLE_FILE_DEFAULT}",
'VENDOR_REPO':"${VENDOR_REPO_DEFAULT}",
'VENDOR_BRANCH':"${VENDOR_BRANCH_DEFAULT}",
Expand Down Expand Up @@ -746,6 +749,7 @@ def set_job_variables(job_type) {
case "pipeline":
// set variables for a pipeline job
set_repos_variables()
set_adoptopenjdk_tests_repository()
set_vendor_variables()
set_build_extra_options()
set_test_targets()
Expand All @@ -756,6 +760,7 @@ def set_job_variables(job_type) {
//set variable for pipeline all/personal
set_repos_variables(BUILD_SPECS)
set_build_extra_options(BUILD_SPECS)
set_adoptopenjdk_tests_repository(get_build_releases(BUILD_SPECS))
set_restart_timeout()
break
default:
Expand Down Expand Up @@ -1115,4 +1120,54 @@ def set_build_extra_options(build_specs=null) {
}
}

/*
* Set the Git repository URL and branch for the AdoptOpenJDK Testing material.
*/
def set_adoptopenjdk_tests_repository(build_releases=null) {
ADOPTOPENJDK_MAP = [:]

if (build_releases) {
for (release in build_releases) {
// fetch from the variables file
def adoptOpenJdkByReleaseMap = [:]
if (get_value(VARIABLES.adoptopenjdk, release)) {
adoptOpenJdkByReleaseMap.putAll(get_value(VARIABLES.adoptopenjdk, release))
} else {
adoptOpenJdkByReleaseMap.putAll(VARIABLES.adoptopenjdk.default)
}

if (params."ADOPTOPENJDK${release}_REPO") {
// override repo with user value
adoptOpenJdkByReleaseMap['repoUrl'] = params."ADOPTOPENJDK${release}_REPO"
}

if (params."ADOPTOPENJDK${release}_BRANCH") {
// override branch with user value
adoptOpenJdkByReleaseMap['branch'] = params."ADOPTOPENJDK${release}_BRANCH"
}

if (adoptOpenJdkByReleaseMap) {
ADOPTOPENJDK_MAP.put(release, adoptOpenJdkByReleaseMap)
}
}

echo "ADOPTOPENJDK_MAP = ${ADOPTOPENJDK_MAP.toString()}"
} else {
// fetch from the variables file
def adoptOpenJdkByReleaseMap = VARIABLES.adoptopenjdk.default

ADOPTOPENJDK_REPO = params.ADOPTOPENJDK_REPO
if (!ADOPTOPENJDK_REPO && adoptOpenJdkByReleaseMap) {
ADOPTOPENJDK_REPO = adoptOpenJdkByReleaseMap.get('repoUrl')
}

ADOPTOPENJDK_BRANCH = params.ADOPTOPENJDK_BRANCH
if (!ADOPTOPENJDK_BRANCH && adoptOpenJdkByReleaseMap) {
ADOPTOPENJDK_BRANCH = adoptOpenJdkByReleaseMap.get('branch')
}

echo "Using ADOPTOPENJDK_REPO = ${ADOPTOPENJDK_REPO} ADOPTOPENJDK_BRANCH = ${ADOPTOPENJDK_BRANCH}"
}
}

return this
17 changes: 14 additions & 3 deletions buildenv/jenkins/jobs/pipelines/Pipeline-Build-Test-All
Expand Up @@ -45,7 +45,9 @@
* OPENJ9_SHA: String - the last commit SHA of the OpenJ9 repository
* OMR_REPO: String - the OMR git repository URL: e.g. https://github.com/eclipse/openj9-omr.git (default)
* OMR_BRANCH: String - the OMR branch to clone from: e.g. openj9 (default)
* OMR_SHA: the last commit SHA of the OMR repository
* OMR_SHA: String - the last commit SHA of the OMR repository
* ADOPTOPENJDK_REPO: String - the AdoptOpenJDK testing repository URL: e.g. https://github.com/AdoptOpenJDK/openjdk-tests.git
* ADOPTOPENJDK_BRANCH: String - the AdoptOpenJDK testing branch: e.g. master
* TESTS_TARGETS: String - The test targets to run. Expected values: _sanity, _extended, none
* VARIABLE_FILE: String - the custom variables file. Uses defaults.yml when no value is provided.
* VENDOR_REPO: String - the repository URL of a Git repository that stores a custom variables file
Expand Down Expand Up @@ -161,7 +163,14 @@ timeout(time: 12, unit: 'HOURS') {
def EXTRA_MAKE_OPTIONS = get_value_by_spec(EXTRA_MAKE_OPTIONS_MAP, SDK_VERSION, SPEC)
def OPENJDK_CLONE_DIR = get_value_by_spec(OPENJDK_CLONE_DIR_MAP, SDK_VERSION, SPEC)

builds["build_test_JDK${SDK_VERSION}_${SPEC}"] = { build(REPO, BRANCH, SHAS, OPENJ9_REPO, OPENJ9_BRANCH, OMR_REPO, OMR_BRANCH, SPEC, SDK_VERSION, BUILD_NODE, TEST_NODE, EXTRA_GETSOURCE_OPTIONS, EXTRA_CONFIGURE_OPTIONS, EXTRA_MAKE_OPTIONS, OPENJDK_CLONE_DIR) }
def ADOPTOPENJDK_REPO = ''
def ADOPTOPENJDK_BRANCH = ''
if (ADOPTOPENJDK_MAP.get(SDK_VERSION)) {
ADOPTOPENJDK_REPO = ADOPTOPENJDK_MAP.get(SDK_VERSION).get('repoUrl')
ADOPTOPENJDK_BRANCH = ADOPTOPENJDK_MAP.get(SDK_VERSION).get('branch')
}

builds["build_test_JDK${SDK_VERSION}_${SPEC}"] = { build(REPO, BRANCH, SHAS, OPENJ9_REPO, OPENJ9_BRANCH, OMR_REPO, OMR_BRANCH, SPEC, SDK_VERSION, BUILD_NODE, TEST_NODE, EXTRA_GETSOURCE_OPTIONS, EXTRA_CONFIGURE_OPTIONS, EXTRA_MAKE_OPTIONS, OPENJDK_CLONE_DIR, ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH) }
}
}
} finally {
Expand All @@ -186,7 +195,7 @@ timeout(time: 12, unit: 'HOURS') {
}
}

def build(OPENJDK_REPO, OPENJDK_BRANCH, SHAS, OPENJ9_REPO, OPENJ9_BRANCH, OMR_REPO, OMR_BRANCH, SPEC, SDK_VERSION, BUILD_NODE, TEST_NODE, EXTRA_GETSOURCE_OPTIONS, EXTRA_CONFIGURE_OPTIONS, EXTRA_MAKE_OPTIONS, OPENJDK_CLONE_DIR) {
def build(OPENJDK_REPO, OPENJDK_BRANCH, SHAS, OPENJ9_REPO, OPENJ9_BRANCH, OMR_REPO, OMR_BRANCH, SPEC, SDK_VERSION, BUILD_NODE, TEST_NODE, EXTRA_GETSOURCE_OPTIONS, EXTRA_CONFIGURE_OPTIONS, EXTRA_MAKE_OPTIONS, OPENJDK_CLONE_DIR, ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH) {
def JOB_NAME = "Pipeline-Build-Test-JDK${SDK_VERSION}-${SPEC}"

stage ("${JOB_NAME}") {
Expand All @@ -201,6 +210,8 @@ def build(OPENJDK_REPO, OPENJDK_BRANCH, SHAS, OPENJ9_REPO, OPENJ9_BRANCH, OMR_RE
string(name: 'OMR_REPO', value: OMR_REPO),
string(name: 'OMR_BRANCH', value: OMR_BRANCH),
string(name: 'OMR_SHA', value: SHAS['OMR']),
string(name: 'ADOPTOPENJDK_REPO', value: ADOPTOPENJDK_REPO),
string(name: 'ADOPTOPENJDK_BRANCH', value: ADOPTOPENJDK_BRANCH),
string(name: 'TESTS_TARGETS', value: TESTS_TARGETS),
string(name: 'VARIABLE_FILE', value: VARIABLE_FILE),
string(name: 'VENDOR_REPO', value: VENDOR_REPO),
Expand Down
Expand Up @@ -41,5 +41,5 @@ timestamps {
cleanWs notFailBuild: true, disableDeferredWipeout: false
}
}
jobs = buildFile.workflow(SDK_VERSION, SPEC, SHAS, OPENJDK_REPO, OPENJDK_BRANCH, OPENJ9_REPO, OPENJ9_BRANCH, OMR_REPO, OMR_BRANCH, TESTS_TARGETS, VENDOR_TEST_REPOS_MAP, VENDOR_TEST_BRANCHES_MAP, VENDOR_TEST_DIRS_MAP, USER_CREDENTIALS_ID, BUILD_LIST, SETUP_LABEL, ghprbGhRepository, ghprbActualCommit, EXTRA_GETSOURCE_OPTIONS, EXTRA_CONFIGURE_OPTIONS, EXTRA_MAKE_OPTIONS, OPENJDK_CLONE_DIR)
jobs = buildFile.workflow(SDK_VERSION, SPEC, SHAS, OPENJDK_REPO, OPENJDK_BRANCH, OPENJ9_REPO, OPENJ9_BRANCH, OMR_REPO, OMR_BRANCH, TESTS_TARGETS, VENDOR_TEST_REPOS_MAP, VENDOR_TEST_BRANCHES_MAP, VENDOR_TEST_DIRS_MAP, USER_CREDENTIALS_ID, BUILD_LIST, SETUP_LABEL, ghprbGhRepository, ghprbActualCommit, EXTRA_GETSOURCE_OPTIONS, EXTRA_CONFIGURE_OPTIONS, EXTRA_MAKE_OPTIONS, OPENJDK_CLONE_DIR, ADOPTOPENJDK_REPO, ADOPTOPENJDK_BRANCH)
}
7 changes: 6 additions & 1 deletion buildenv/jenkins/variables/defaults.yml
Expand Up @@ -22,6 +22,7 @@
#========================================#
# Git repositories
#========================================#
# Eclipse OpenJ9 extensions repositories
openjdk:
8:
default:
Expand All @@ -47,6 +48,11 @@ openjdk:
default:
repoUrl: 'https://github.com/ibmruntimes/openj9-openjdk-jdk.git'
branch: 'openj9'
# AdoptOpenJDK Testing repository
adoptopenjdk:
default:
repoUrl: 'https://github.com/AdoptOpenJDK/openjdk-tests.git'
branch: 'master'
#========================================#
# Miscellaneous settings
#========================================#
Expand Down Expand Up @@ -258,7 +264,6 @@ linux_x86-64_cmprssptrs_cmake:
11: 'ci.role.build && hw.arch.x86 && sw.os.ubuntu'
12: 'ci.role.build && hw.arch.x86 && sw.os.ubuntu'
next: 'ci.role.build && hw.arch.x86 && sw.os.ubuntu'
next: 'hw.arch.x86 && sw.os.ubuntu'
extra_getsource_options:
8: '--openssl-version=1.1.1a'
11: '--openssl-version=1.1.1a'
Expand Down

0 comments on commit 27b84c4

Please sign in to comment.