diff --git a/buildenv/jenkins/JenkinsfileBase b/buildenv/jenkins/JenkinsfileBase index 41329ec259..24c8b3ec68 100644 --- a/buildenv/jenkins/JenkinsfileBase +++ b/buildenv/jenkins/JenkinsfileBase @@ -426,7 +426,7 @@ def setup() { stage('Setup') { setupEnv() if (params.CUSTOMIZED_SDK_URL) { - if (params.SDK_RESOURCE == 'nightly') { + if (params.SDK_RESOURCE == 'nightly' || params.SDK_RESOURCE == 'releases') { // remove single quote to allow variables to be set in CUSTOMIZED_SDK_URL CUSTOMIZED_SDK_URL_OPTION = "-c ${params.CUSTOMIZED_SDK_URL}" } else if (!params.SDK_RESOURCE || params.SDK_RESOURCE == 'customized') { diff --git a/get.sh b/get.sh index c2fe6b9949..bbeca31181 100755 --- a/get.sh +++ b/get.sh @@ -201,7 +201,7 @@ getBinaryOpenjdk() download_url+=" ${latestBuildUrl}${n}" fi done - elif [ "$CUSTOMIZED_SDK_URL" != "" ]; then + elif [ "$SDK_RESOURCE" == "customized" ] && [ "$CUSTOMIZED_SDK_URL" != "" ]; then download_url=$CUSTOMIZED_SDK_URL images="test-images.tar.gz debug-image.tar.gz" download_urls=($download_url) @@ -233,7 +233,11 @@ getBinaryOpenjdk() arch="x64" fi if [[ $arch = *"x86-32"* ]]; then - arch="x32" + if [ "$JDK_IMPL" == "openj9" ]; then + arch="x86-32" + else + arch="x32" + fi fi release_type="ea" if [ "$SDK_RESOURCE" = "releases" ]; then @@ -241,12 +245,31 @@ getBinaryOpenjdk() fi if [ "$JDK_IMPL" == "openj9" ]; then - if [ "$SDK_RESOURCE" = "nightly" ]; then - echo "Semeru API does not provide openj9 SDK nightly at the moment. Please use CUSTOMIZED_SDK_URL to provide the SDK URL directly." + if [ "$CUSTOMIZED_SDK_URL" == "" ]; then + echo "Please use CUSTOMIZED_SDK_URL to provide the base SDK URL for Artifactory." exit 1 else - download_url="https://ibm.com/semeru-runtimes/api/v3/binary/latest/${JDK_VERSION}/${release_type}/${os}/${arch}/jdk/openj9/${heap_size}/ibm https://ibm.com/semeru-runtimes/api/v3/binary/latest/${JDK_VERSION}/${release_type}/${os}/${arch}/testimage/openj9/${heap_size}/ibm" - info_url="https://ibm.com/semeru-runtimes/api/v3/assets/feature_releases/${JDK_VERSION}/${release_type}?architecture=${arch}&heap_size=${heap_size}&image_type=jdk&jvm_impl=openj9&os=${os}&project=jdk&vendor=ibm https://ibm.com/semeru-runtimes/api/v3/assets/feature_releases/${JDK_VERSION}/${release_type}?architecture=${arch}&heap_size=${heap_size}&image_type=testimage&jvm_impl=openj9&os=${os}&project=jdk&vendor=ibm" + download_url_base="${CUSTOMIZED_SDK_URL}/${arch}_${os}/" + # Artifactory cannot handle duplicate slashes (//) in URL. Remove // except after http:// or https:// + download_url_base=$(echo "$download_url_base" | sed -r 's|([^:])/+|\1/|g') + echo "artifactory URL: ${download_url_base}" + download_api_url_base=(${download_url_base//\/ui\/native\//\/artifactory\/api\/storage\/}) + echo "use artifactory API to get the jdk and/or test images: ${download_api_url_base}" + download_urls=$(curl ${curl_options} ${download_api_url_base} | grep -E '.*\.tar\.gz"|.*\.zip"' | grep -E 'testimage|jdk'| sed 's/.*"uri" : "\([^"]*\)".*/\1/') + arr=(${download_urls/ / }) + download_url=() + download_url_base=(${download_url_base//\/ui\/native\//\/artifactory\/}) + echo "downloading files from $latestBuildUrl" + for n in "${arr[@]}" ; do + if [[ $n =~ 'testimage' ]]; then + if [ "$TEST_IMAGES_REQUIRED" == "true" ]; then + download_url+=" ${download_url_base}${n}" + fi + else + download_url+=" ${download_url_base}${n}" + fi + done + download_url=$(echo "$download_url" | sed -r 's|([^:])/+|\1/|g') fi else download_url="https://api.adoptium.net/v3/binary/latest/${JDK_VERSION}/${release_type}/${os}/${arch}/jdk/${JDK_IMPL}/${heap_size}/adoptium?project=jdk https://api.adoptium.net/v3/binary/latest/${JDK_VERSION}/${release_type}/${os}/${arch}/sbom/${JDK_IMPL}/${heap_size}/adoptium?project=jdk"