Skip to content

Commit

Permalink
Add CI job to test with static libraries (#441)
Browse files Browse the repository at this point in the history
* Add ci job to test with static libraries

* Set static libs via DBUILD_SHARED_LIBS flag
  • Loading branch information
samjwu authored Feb 13, 2024
1 parent 6350055 commit e9af194
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 2 deletions.
3 changes: 1 addition & 2 deletions .jenkins/common.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def runCompileCommand(platform, project, jobName, boolean debug=false, boolean s
project.paths.build_command = './install -c'
String buildTypeArg = debug ? '-DCMAKE_BUILD_TYPE=Debug' : '-DCMAKE_BUILD_TYPE=Release'
String buildTypeDir = debug ? 'debug' : 'release'
String buildStatic = staticLibrary ? '-DBUILD_STATIC_LIBS=ON' : '-DBUILD_SHARED=OFF'
String buildStatic = staticLibrary ? '-DBUILD_SHARED_LIBS=OFF' : '-DBUILD_SHARED_LIBS=ON'
String codeCovFlag = codeCoverage ? '-DCODE_COVERAGE=ON' : ''
String cmake = platform.jenkinsLabel.contains('centos') ? 'cmake3' : 'cmake'
//Set CI node's gfx arch as target if PR, otherwise use default targets of the library
Expand Down Expand Up @@ -93,4 +93,3 @@ def runCodeCovTestCommand(platform, project, jobName)
}

return this

77 changes: 77 additions & 0 deletions .jenkins/static.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
#!/usr/bin/env groovy
@Library('rocJenkins@pong') _
import com.amd.project.*
import com.amd.docker.*
import java.nio.file.Path;

def runCI =
{
nodeDetails, jobName->

def prj = new rocProject('rocRAND', 'static')

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, debug=false, staticLibrary=true)
}

def testCommand =
{
platform, project->

commonGroovy.runTestCommand(platform, project)
}

def packageCommand =
{
platform, project->

commonGroovy.runPackageCommand(platform, project)
}

buildProject(prj, 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 * * 0')])]]
propertyList = auxiliary.appendPropertyList(propertyList)

def jobNameList = ["compute-rocm-dkms-no-npi-hipclang":([ubuntu18:['gfx900'],centos7:['gfx906'],centos8:['gfx906'],sles15sp1:['gfx908']])]
jobNameList = auxiliary.appendJobNameList(jobNameList)

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([ubuntu16:['gfx906']], urlJobName)
}
}
}

0 comments on commit e9af194

Please sign in to comment.