diff --git a/projects/rocblas/.jenkins/asan.groovy b/projects/rocblas/.jenkins/asan.groovy deleted file mode 100644 index bca699846681..000000000000 --- a/projects/rocblas/.jenkins/asan.groovy +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for internal AMD use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: true, - gfilter: "*quick*:*pre_checkin*"] - - def prj = new rocProject('rocBLAS', 'address-sanitizer') - // customize for project - prj.paths.build_command = './install.sh -c --address-sanitizer' - - def noHipblasLT = env.BRANCH_NAME ==~ /PR-\d+/ && pullRequest.labels.contains("noHipblasLT") - if (!noHipblasLT) - { - prj.libraryDependencies = ['hipBLAS-common', 'hipBLASLt'] - } - - prj.defaults.ccache = true - prj.timeout.compile = 480 - prj.timeout.test = 360 - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def testCommand = - { - platform, project-> - - def testFilter = "" - - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - pullRequest.labels.each - { - if (it == "TestTensileOnly") - { - testFilter += "*blas3_tensile/quick*:*blas3_tensile/pre_checkin*:" - testFilter += "*blas2_tensile/quick*:*blas2_tensile/pre_checkin*:" - } - else if(it == "TestLevel3Only") - { - testFilter += "*blas3*quick*:*blas3*pre_checkin*:" - } - else if(it == "TestLevel2Only") - { - testFilter += "*blas2*quick*:*blas2*pre_checkin*:" - } - else if(it == "TestLevel1Only") - { - testFilter += "*blas1*quick*:*blas1*pre_checkin*:" - } - } - } - - if (testFilter.length() > 0) - { - // The below command chops the final character ':' in testFilter and transfers the string to settings.gfilter. - settings.gfilter = testFilter.substring(0, testFilter.length() - 1); - } - - commonGroovy.runTestCommand(platform, project, settings) - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) - -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 6')])], - "compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 6')])], - "rocm-docker":[]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi":([ubuntu18:['gfx900'],centos7:['gfx906'],sles15sp1:['gfx906']]), - "compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900'],centos7:['gfx906'],centos8:['gfx906'],sles15sp1:['gfx908']]), - "rocm-docker":([ubuntu18:['gfx900']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) - stage(urlJobName) { - runCI([ubuntu18:['gfx900', 'gfx906']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/codecov.groovy b/projects/rocblas/.jenkins/codecov.groovy deleted file mode 100644 index fc19a10022a8..000000000000 --- a/projects/rocblas/.jenkins/codecov.groovy +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCm/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for internal AMD use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: false, - gfilter: "*quick*:*pre_checkin*:*ILP64*"] - - def prj = new rocProject('rocBLAS', 'CodeCov') - - // customize for project no Tensile for now - prj.paths.build_command = './install.sh -knc --codecoverage' - - def noHipblasLT = env.BRANCH_NAME ==~ /PR-\d+/ && pullRequest.labels.contains("noHipblasLT") - if (!noHipblasLT) - { - prj.libraryDependencies = ['hipBLAS-common', 'hipBLASLt'] - } - - prj.defaults.ccache = false - prj.timeout.compile = 480 - prj.timeout.test = 360 - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - def commonGroovy - - boolean formatCheck = false - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def testCommand = - { - platform, project-> - - def testFilter = "" - - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - pullRequest.labels.each - { - if (it == "TestTensileOnly") - { - testFilter += "*blas3_tensile/quick*:*blas3_tensile/pre_checkin*:" - testFilter += "*blas2_tensile/quick*:*blas2_tensile/pre_checkin*:" - } - else if(it == "TestLevel3Only") - { - testFilter += "*blas3*quick*:*blas3*pre_checkin*:" - } - else if(it == "TestLevel2Only") - { - testFilter += "*blas2*quick*:*blas2*pre_checkin*:" - } - else if(it == "TestLevel1Only") - { - testFilter += "*blas1*quick*:*blas1*pre_checkin*:" - } - } - } - - if (testFilter.length() > 0) - { - // The below command chops the final character ':' in testFilter and transfers the string to settings.gfilter. - settings.gfilter = testFilter.substring(0, testFilter.length() - 1); - } - - commonGroovy.runCoverageCommand(platform, project, settings.gfilter, "release-debug") - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, testCommand, null) -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 6')])], - "compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 6')])], - "rocm-docker":[]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi":([ubuntu18:['gfx900'],centos7:['gfx906'],sles15sp1:['gfx906']]), - "compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900'],centos7:['gfx906'],centos8:['gfx906'],sles15sp1:['gfx908']]), - "rocm-docker":([ubuntu18:['gfx900']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) - stage(urlJobName) { - runCI([ubuntu18:['gfx900']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/common.groovy b/projects/rocblas/.jenkins/common.groovy deleted file mode 100644 index 9d2f0ebf5dd1..000000000000 --- a/projects/rocblas/.jenkins/common.groovy +++ /dev/null @@ -1,281 +0,0 @@ -// This file is for AMD Continuous Integration use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - - -def runCompileCommand(platform, project, jobName, settings, boolean sameOrg=false) -{ - project.paths.construct_build_prefix() - - String centos7 = platform.jenkinsLabel.contains('centos7') ? 'source scl_source enable devtoolset-7' : ':' - String dynamicBuildCommand = project.paths.build_command - String dynamicOptions = "" - String labelOptions = "" - - def getDependenciesCommand = "" - if (project.installLibraryDependenciesFromCI) - { - project.libraryDependencies.each - { libraryName -> - getDependenciesCommand += auxiliary.getLibrary(libraryName, platform.jenkinsLabel, null, sameOrg) - } - } - - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - if (pullRequest.labels.contains("noTensile")) - { - dynamicBuildCommand = dynamicBuildCommand + ' -n' - } - - if (pullRequest.labels.contains("noHipblasLT")) - { - dynamicBuildCommand = dynamicBuildCommand + ' --no_hipblaslt' - } - - if (env.CHANGE_TARGET == "develop" && pullRequest.labels.contains("dependencies")) - { - // test PR as static pipeline may be infrequent - dynamicBuildCommand = dynamicBuildCommand + ' -d' - } - - // in PR if we are targeting develop branch build ONLY what CI pipeline will test, unless gfxall label - if (env.CHANGE_TARGET == "develop" && !pullRequest.labels.contains("gfxall")) - { - // requires at command execution time ${auxiliary.gfxTargetParser()} to set gfx_var variable - if (settings.addressSanitizer) - { - // currently on sanitizer pipelines $gfx_arch includes xnack-/+ - // dynamicOptions = dynamicOptions + ' -a \$gfx_arch:xnack+' - dynamicOptions = dynamicOptions + ' -a \$gfx_arch' - } - else - { - dynamicOptions = dynamicOptions + ' -a \$gfx_arch' - } - } - - if (env.CHANGE_TARGET == "develop" && pullRequest.labels.contains("ci:static-libraries")) - { - // test PR as static pipeline may be infrequent - dynamicOptions = dynamicOptions + ' --static' - } - - if (env.CHANGE_TARGET == "develop" && pullRequest.labels.size() > 0) - { - labelOptions = pullRequest.labels.join(';') - labelOptions = labelOptions.replace(" ", "_") - dynamicOptions = dynamicOptions + """ --ci_labels \"${labelOptions}\" """ - } - } - // these 908 nodes have too few CPU cores to build full fat library (temporary workaround) - // contains question to remove after testing PR before merging!!! - else if (env.BRANCH_NAME ==~ /develop/ && platform.jenkinsLabel.contains('gfx908')) - { - // mimimal fat binary - dynamicOptions = dynamicOptions + ' -a "gfx908;gfx1101"' - } - - def command = """#!/usr/bin/env bash - set -x - cd ${project.paths.project_build_prefix} - ${centos7} - ${getDependenciesCommand} - ${auxiliary.gfxTargetParser()} - ${dynamicBuildCommand} ${dynamicOptions} - """ - platform.runCommand(this, command) -} - -def runTestCommand (platform, project, settings) -{ - String sudo = auxiliary.sudo(platform.jenkinsLabel) - - String installPackage = "" - if (platform.jenkinsLabel.contains('centos') || platform.jenkinsLabel.contains('sles')) - { - installPackage = 'sudo rpm -i rocblas*.rpm' - } - else - { - installPackage = 'sudo dpkg -i rocblas*.deb' - } - - String runTests = "" - String testXMLPath = "${project.paths.project_build_prefix}/build/release/clients/staging/*.xml" - - String gtestArgs = "" - String xnackVar = "" - - String gtestCommonEnv = "ROCBLAS_CLIENT_RAM_GB_LIMIT=90" // was 95 and still killed - String checkNumericsEnv = "ROCBLAS_CHECK_NUMERICS=6" // report status 4 & log 2 on fail - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - if (pullRequest.labels.contains("helpWanted")) - { - gtestCommonEnv += " GTEST_LISTENER=PASS_LINE_IN_LOG" - } - if (platform.jenkinsLabel.contains('gfx942') && pullRequest.labels.contains("envUseHipblasLT")) - { - gtestCommonEnv += " ROCBLAS_USE_HIPBLASLT=1" - } - } - - def hmmTestCommand= '' - if (settings.gfilter.contains('nightly') && (platform.jenkinsLabel.contains('gfx90a') || platform.jenkinsLabel.contains('gfx942'))) - { - hmmTestCommand = """ - ${gtestCommonEnv} HSA_XNACK=1 \$ROCBLAS_TEST --gtest_output=xml:test_detail_hmm.xml --gtest_color=yes --gtest_filter=*HMM*-*known_bug* - """ - } - - def rocBLASTestCommand = '' - def checkNumericsTestCommand= '' - if (project.buildName.contains('weekly')) - { - rocBLASTestCommand = """ - ${gtestCommonEnv} \$ROCBLAS_TEST --gtest_output=xml --gtest_color=yes --gtest_filter=${settings.gfilter}-*known_bug* - """ - - // Enable check numerics only for checkNumericsTestCommand - checkNumericsTestCommand = """ - ${gtestCommonEnv} ${checkNumericsEnv} \$ROCBLAS_TEST --gtest_output=xml --gtest_color=yes --yaml \$ROCBLAS_SMOKE - - """ - // previously were running most psdb tests for check numerics without the not applicable sets - // was --gtest_filter=*blas1/pre_checkin*:*blas2/pre_checkin*:*blas3/pre_checkin*:*blas3_tensile/pre_checkin*:*blas_ex/pre_checkin*:-*known_bug*:*repeatability_check*:*get_solutions* - } - else - { - rocBLASTestCommand = """ - ${gtestCommonEnv} \$ROCBLAS_TEST --gtest_output=xml --gtest_color=yes --gtest_filter=${settings.gfilter}-*known_bug* - """ - } - - if (platform.jenkinsLabel.contains('ubuntu')) - { - runTests = """ - pushd ${project.paths.project_build_prefix} - mv build build_BAK - ROCBLAS_TEST=/opt/rocm/bin/rocblas-test - ROCBLAS_SMOKE=/opt/rocm/bin/rocblas_smoke.yaml - ${rocBLASTestCommand} - if (( \$? != 0 )); then - exit 1 - fi - ${hmmTestCommand} - if (( \$? != 0 )); then - exit 1 - fi - ${checkNumericsTestCommand} - if (( \$? != 0 )); then - exit 1 - fi - mv build_BAK build - popd - """ - testXMLPath = "${project.paths.project_build_prefix}/test_detail*.xml" - } - else - { - runTests = """ - cd ${project.paths.project_build_prefix}/build/release/clients/staging - ROCBLAS_TEST=./rocblas-test - ROCBLAS_SMOKE=./rocblas_smoke.yaml - ${rocBLASTestCommand} - if (( \$? != 0 )); then - exit 1 - fi - ${hmmTestCommand} - if (( \$? != 0 )); then - exit 1 - fi - ${checkNumericsTestCommand} - if (( \$? != 0 )); then - exit 1 - fi - """ - } - - def LD_PATH = '' - def asanArgs = '' - if (settings.addressSanitizer) - { - LD_PATH = """ - export ASAN_LIB_PATH=\$(/opt/rocm/llvm/bin/clang -print-file-name=libclang_rt.asan-x86_64.so) - export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$(dirname "\${ASAN_LIB_PATH}") - """ - asanArgs = """ - export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/rocm/llvm/lib/clang/18/lib/linux - export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/rocm/lib/asan - export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/rocm/libexec/rocm_smi - export ASAN_SYMBOLIZER_PATH=/opt/rocm/llvm/bin/llvm-symbolizer - export PATH=/opt/rocm/llvm/bin/:\$PATH - export PATH=/opt/rocm/:\$PATH - export HSA_XNACK=1 - export ASAN_OPTIONS=detect_leaks=0 - """ - } - - def command = """#!/usr/bin/env bash - set -x - pushd ${project.paths.project_build_prefix}/build/release/package - ${installPackage} - popd - ${LD_PATH} - ${asanArgs} - ${runTests} - """ - - platform.runCommand(this, command) -} - -def runCoverageCommand (platform, project, gfilter, String cmddir = "release-debug") -{ - //Temporary workaround due to bug in container - String centos7Workaround = platform.jenkinsLabel.contains('centos7') ? 'export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/opt/rocm/lib64/' : '' - String gtestCommonEnv = "ROCBLAS_CLIENT_RAM_GB_LIMIT=90" // was 95 and still killed - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - if (pullRequest.labels.contains("helpWanted")) - { - gtestCommonEnv += " GTEST_LISTENER=PASS_LINE_IN_LOG" - } - } - - def command = """#!/usr/bin/env bash - set -x - cd ${project.paths.project_build_prefix}/build/${cmddir} - export LD_LIBRARY_PATH=/opt/rocm/lib/ - ${centos7Workaround} - ${gtestCommonEnv} make coverage_cleanup coverage GTEST_FILTER=${gfilter}-*known_bug* - """ - - platform.runCommand(this, command) - - publishHTML([allowMissing: false, - alwaysLinkToLastBuild: false, - keepAll: false, - reportDir: "${project.paths.project_build_prefix}/build/${cmddir}/lcoverage", - reportFiles: "index.html", - reportName: "Code coverage report", - reportTitles: "Code coverage report"]) -} - -def runPackageCommand(platform, project, boolean debug=false) -{ - String buildTypeDir = debug ? 'debug' : 'release' - def packageHelper = platform.makePackage(platform.jenkinsLabel,"${project.paths.project_build_prefix}/build/${buildTypeDir}") - platform.runCommand(this, packageHelper[0]) - platform.archiveArtifacts(this, packageHelper[1]) - def cleanCommand = """#!/usr/bin/env bash - set -x - cd ${project.paths.project_build_prefix}/build/ - find -name '*.o.d' -delete - find -name '*.o' -delete - find -type d -name '*build_tmp*' -exec rm -rf {} + - find -type d -name '*_CPack_Packages*' -exec rm -rf {} + - """ - platform.runCommand(this, cleanCommand) -} - -return this diff --git a/projects/rocblas/.jenkins/debug.groovy b/projects/rocblas/.jenkins/debug.groovy deleted file mode 100644 index 3a5ff5e2e7ea..000000000000 --- a/projects/rocblas/.jenkins/debug.groovy +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for AMD Continuous Integration use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: false, - gfilter: "*quick*:*pre_checkin*"] - - def prj = new rocProject('rocBLAS', 'Debug') - - // customize for project - prj.paths.build_command = './install.sh -c -g' - - def noHipblasLT = env.BRANCH_NAME ==~ /PR-\d+/ && pullRequest.labels.contains("noHipblasLT") - if (!noHipblasLT) - { - prj.libraryDependencies = ['hipBLAS-common', 'hipBLASLt'] - } - - prj.defaults.ccache = false - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - prj.timeout.compile = 480 - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project, debug=true) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, null, packageCommand) - -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 0')])], - "compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 0')])], - "rocm-docker":[]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi":([ubuntu18:['gfx900']]), - "compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900']]), - "rocm-docker":([ubuntu18:['gfx900']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) - stage(urlJobName) { - runCI([ubuntu18:['gfx900']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/extended.groovy b/projects/rocblas/.jenkins/extended.groovy deleted file mode 100644 index b64bf85c1ea9..000000000000 --- a/projects/rocblas/.jenkins/extended.groovy +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for AMD Continuous Integration use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: false, - gfilter: "*nightly*"] - - def prj = new rocProject('rocBLAS', 'Extended') - - // customize for project - prj.paths.build_command = './install.sh -c' - - def noHipblasLT = env.BRANCH_NAME ==~ /PR-\d+/ && pullRequest.labels.contains("noHipblasLT") - if (!noHipblasLT) - { - prj.libraryDependencies = ['hipBLAS-common', 'hipBLASLt'] - } - - prj.defaults.ccache = false - prj.timeout.compile = 480 - prj.timeout.test = 600 - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def testCommand = - { - platform, project-> - - def testFilter = "" - - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - pullRequest.labels.each - { - if (it == "TestTensileOnly") - { - testFilter += "*blas3_tensile/nightly*:" - testFilter += "*blas2_tensile/nightly*:" - } - else if(it == "TestLevel3Only") - { - testFilter += "*blas3*nightly*:" - } - else if(it == "TestLevel2Only") - { - testFilter += "*blas2*nightly*:" - } - else if(it == "TestLevel1Only") - { - testFilter += "*blas1*nightly*:" - } - } - } - - if (testFilter.length() > 0) - { - // The below command chops the final character ':' in testFilter and transfers the string to settings.gfilter. - settings.gfilter = testFilter.substring(0, testFilter.length() - 1); - } - - commonGroovy.runTestCommand(platform, project, settings) - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) - -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 0')])], - "compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 0')])], - "rocm-docker":[]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi":([ubuntu18:['gfx900'],centos7:['gfx906'],sles15sp1:['gfx906']]), - "compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900'],centos7:['gfx906'],sles15sp1:['gfx908']]), - "rocm-docker":([ubuntu18:['gfx900'],centos7:['gfx906'],sles15sp1:['gfx906']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) - stage(urlJobName) { - runCI([ubuntu18:['gfx900']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/multigpu.groovy b/projects/rocblas/.jenkins/multigpu.groovy deleted file mode 100644 index 684855db5428..000000000000 --- a/projects/rocblas/.jenkins/multigpu.groovy +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for AMD Continuous Integration use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: false, - gfilter: "*multi_gpu*"] - - def prj = new rocProject('rocBLAS', 'MultiGPU') - - // customize for project - prj.paths.build_command = './install.sh -c' - - def noHipblasLT = env.BRANCH_NAME ==~ /PR-\d+/ && pullRequest.labels.contains("noHipblasLT") - if (!noHipblasLT) - { - prj.libraryDependencies = ['hipBLAS-common', 'hipBLASLt'] - } - - prj.defaults.ccache = false - prj.timeout.compile = 480 - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def testCommand = - { - platform, project-> - - def testFilter = "" - - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - pullRequest.labels.each - { - if (it == "TestTensileOnly") - { - testFilter += "*blas3_tensile/multi_gpu*:" - testFilter += "*blas2_tensile/multi_gpu*:" - } - else if(it == "TestLevel3Only") - { - testFilter += "*blas3*multi_gpu*:" - } - else if(it == "TestLevel2Only") - { - testFilter += "*blas2*multi_gpu*:" - } - else if(it == "TestLevel1Only") - { - testFilter += "*blas1*multi_gpu*:" - } - } - } - - if (testFilter.length() > 0) - { - // The below command chops the final character ':' in testFilter and transfers the string to settings.gfilter. - settings.gfilter = testFilter.substring(0, testFilter.length() - 1); - } - - commonGroovy.runTestCommand(platform, project, settings) - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) - -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 6')])]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['4gfx906']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * 6')])])) - stage(urlJobName) { - runCI([ubuntu18:['4gfx906']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/precheckin.groovy b/projects/rocblas/.jenkins/precheckin.groovy deleted file mode 100644 index d0da3c51997b..000000000000 --- a/projects/rocblas/.jenkins/precheckin.groovy +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for internal AMD use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: false, - gfilter: "*quick*:*pre_checkin*"] - - def prj = new rocProject('rocBLAS', 'PreCheckin') - - // customize for project - prj.paths.build_command = './install.sh -c' - - def noHipblasLT = env.BRANCH_NAME ==~ /PR-\d+/ && pullRequest.labels.contains("noHipblasLT") - if (!noHipblasLT) - { - prj.libraryDependencies = ['hipBLAS-common', 'hipBLASLt'] - } - - prj.defaults.ccache = false - prj.timeout.compile = 480 - prj.timeout.test = 360 - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def testCommand = - { - platform, project-> - - def testFilter = "" - - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - pullRequest.labels.each - { - if (it == "TestTensileOnly") - { - testFilter += "*blas3_tensile/quick*:*blas3_tensile/pre_checkin*:" - testFilter += "*blas2_tensile/quick*:*blas2_tensile/pre_checkin*:" - } - else if(it == "TestLevel3Only") - { - testFilter += "*blas3*quick*:*blas3*pre_checkin*:" - } - else if(it == "TestLevel2Only") - { - testFilter += "*blas2*quick*:*blas2*pre_checkin*:" - } - else if(it == "TestLevel1Only") - { - testFilter += "*blas1*quick*:*blas1*pre_checkin*:" - } - } - } - - if (testFilter.length() > 0) - { - // The below command chops the final character ':' in testFilter and transfers the string to settings.gfilter. - settings.gfilter = testFilter.substring(0, testFilter.length() - 1); - } - - commonGroovy.runTestCommand(platform, project, settings) - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) - -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 6')])], - "compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 6')])], - "rocm-docker":[]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi":([ubuntu18:['gfx900'],centos7:['gfx906'],sles15sp1:['gfx906']]), - "compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900'],centos7:['gfx906'],centos8:['gfx906'],sles15sp1:['gfx908']]), - "rocm-docker":([ubuntu18:['gfx900']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) - stage(urlJobName) { - runCI([ubuntu18:['gfx900', 'gfx906']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/static.groovy b/projects/rocblas/.jenkins/static.groovy deleted file mode 100644 index 4501314ef3c4..000000000000 --- a/projects/rocblas/.jenkins/static.groovy +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for internal AMD use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: false, - gfilter: "*quick*:*pre_checkin*"] - - def prj = new rocProject('rocBLAS', 'static') - - // customize for project - prj.paths.build_command = './install.sh -cs' - - prj.defaults.ccache = false - prj.timeout.compile = 480 - prj.timeout.test = 360 - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def testCommand = - { - platform, project-> - - def testFilter = "" - - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - pullRequest.labels.each - { - if (it == "TestTensileOnly") - { - testFilter += "*blas3_tensile/quick*:*blas3_tensile/pre_checkin*:" - } - else if(it == "TestLevel3Only") - { - testFilter += "*blas3/quick*:*blas3/pre_checkin*:" - } - else if(it == "TestLevel2Only") - { - testFilter += "*blas2/quick*:*blas2/pre_checkin*:" - } - else if(it == "TestLevel1Only") - { - testFilter += "*blas1*quick*:*blas1*pre_checkin*:" - } - } - } - - if (testFilter.length() > 0) - { - // The below command chops the final character ':' in testFilter and transfers the string to gfilter. - settings.gfilter = testFilter.substring(0, testFilter.length() - 1); - } - - commonGroovy.runTestCommand(platform, project, settings) - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) - -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 6')])], - "compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 6')])], - "rocm-docker":[]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi":([ubuntu18:['gfx900'],centos7:['gfx906'],sles15sp1:['gfx906']]), - "compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900'],centos7:['gfx906'],centos8:['gfx906'],sles15sp1:['gfx908']]), - "rocm-docker":([ubuntu18:['gfx900']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) - stage(urlJobName) { - runCI([ubuntu22:['gfx90a']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/staticanalysis.groovy b/projects/rocblas/.jenkins/staticanalysis.groovy deleted file mode 100644 index cfd0fe2b8be3..000000000000 --- a/projects/rocblas/.jenkins/staticanalysis.groovy +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for AMD Continuous Integration use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: true, - addressSanitizer: false, - gfilter: "*quick*:*pre_checkin*"] - - def prj = new rocProject('rocBLAS', 'StaticAnalysis') - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - boolean staticAnalysis = true - - buildProject(prj, settings.formatCheck, nodes.dockerArray, null, null, null, staticAnalysis) -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi":[pipelineTriggers([cron('0 1 * * 6')])], - "compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 6')])], - "rocm-docker":[]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi":([ubuntu18:['gfx900'],centos7:['gfx906'],sles15sp1:['gfx906']]), - "compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900'],centos7:['gfx906'],centos8:['gfx906'],sles15sp1:['gfx908']]), - "rocm-docker":([ubuntu18:['gfx900']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * 6')])])) - stage(urlJobName) { - runCI([ubuntu18:['gfx900', 'gfx906']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/staticlibrary.groovy b/projects/rocblas/.jenkins/staticlibrary.groovy deleted file mode 100644 index 78b432a3cb88..000000000000 --- a/projects/rocblas/.jenkins/staticlibrary.groovy +++ /dev/null @@ -1,120 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for AMD Continuous Integration use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: false, - gfilter: "*quick*:*pre_checkin*"] - - def prj = new rocProject('rocBLAS', 'StaticLibrary') - - // customize for project - prj.paths.build_command = './install.sh -c --static' - - prj.defaults.ccache = false - prj.timeout.compile = 480 - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def testCommand = - { - platform, project-> - - def testFilter = "" - - if (env.BRANCH_NAME ==~ /PR-\d+/) - { - pullRequest.labels.each - { - if (it == "TestTensileOnly") - { - testFilter += "*blas3_tensile/quick*:*blas3_tensile/pre_checkin*:" - } - else if(it == "TestLevel3Only") - { - testFilter += "*blas3/quick*:*blas3/pre_checkin*:" - } - else if(it == "TestLevel2Only") - { - testFilter += "*blas2/quick*:*blas2/pre_checkin*:" - } - else if(it == "TestLevel1Only") - { - testFilter += "*blas1*quick*:*blas1*pre_checkin*:" - } - } - } - - if (testFilter.length() > 0) - { - // The below command chops the final character ':' in testFilter and transfers the string to settings.gfilter. - settings.gfilter = testFilter.substring(0, testFilter.length() - 1); - } - - commonGroovy.runTestCommand(platform, project, settings) - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["compute-rocm-dkms-no-npi-hipclang":[pipelineTriggers([cron('0 1 * * 6')])]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900']])] - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) - stage(urlJobName) { - runCI([ubuntu18:['gfx900']], urlJobName) - } - } -} diff --git a/projects/rocblas/.jenkins/weekly.groovy b/projects/rocblas/.jenkins/weekly.groovy deleted file mode 100644 index b8dd8bbb0108..000000000000 --- a/projects/rocblas/.jenkins/weekly.groovy +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env groovy -// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/ -@Library('rocJenkins@pong') _ - -// This is file for internal AMD use. -// If you are interested in running your own Jenkins, please raise a github issue for assistance. - -import com.amd.project.* -import com.amd.docker.* -import java.nio.file.Path - -def runCI = -{ - nodeDetails, jobName-> - - def settings = [formatCheck: false, - addressSanitizer: false, - gfilter: "*stress*:*HMM*:"] - - def prj = new rocProject('rocBLAS', 'weekly') - - // customize for project - prj.paths.build_command = './install.sh -c' - - def noHipblasLT = env.BRANCH_NAME ==~ /PR-\d+/ && pullRequest.labels.contains("noHipblasLT") - if (!noHipblasLT) - { - prj.libraryDependencies = ['hipBLAS-common', 'hipBLASLt'] - } - - prj.defaults.ccache = false - prj.timeout.compile = 480 - prj.timeout.test = 600 - - // Define test architectures, optional rocm version argument is available - def nodes = new dockerNodes(nodeDetails, jobName, prj) - - def compileCommand = - { - platform, project-> - - commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy" - commonGroovy.runCompileCommand(platform, project, jobName, settings) - } - - def testCommand = - { - platform, project-> - - commonGroovy.runTestCommand(platform, project, settings) - } - - def packageCommand = - { - platform, project-> - - commonGroovy.runPackageCommand(platform, project) - } - - buildProject(prj, settings.formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand) - -} - -ci: { - String urlJobName = auxiliary.getTopJobName(env.BUILD_URL) - - def propertyList = ["main":[pipelineTriggers([cron('0 1 * * 6')])]] - propertyList = auxiliary.appendPropertyList(propertyList) - - def jobNameList = ["main":([ubuntu20:['gfx90a']])] - - jobNameList = auxiliary.appendJobNameList(jobNameList, 'rocBLAS') - - propertyList.each - { - jobName, property-> - if (urlJobName == jobName) - properties(auxiliary.addCommonProperties(property)) - } - - jobNameList.each - { - jobName, nodeDetails-> - if (urlJobName == jobName) - stage(jobName) { - runCI(nodeDetails, jobName) - } - } - - // For url job names that are not listed by the jobNameList i.e. compute-rocm-dkms-no-npi-1901 - if(!jobNameList.keySet().contains(urlJobName)) - { - properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * *')])])) - stage(urlJobName) { - runCI([ubuntu20:['gfx90a']], urlJobName) - } - } -}