Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

142 lines
4.3 KiB
Groovy

#!/usr/bin/env groovy
@Library('rocJenkins@pong') _
import com.amd.project.*
import com.amd.docker.*
import java.nio.file.Path;
import jenkins.*;
def runCI =
{
nodeDetails, jobName->
def prj = new rocProject('rocRoller', 'PreCheckin')
//use docker files from this repo
prj.repoDockerfile = false
prj.defaults.ccache = false
def uniqueTag = params?."Unique Docker image tag" ? org.apache.commons.lang.RandomStringUtils.random(9, true, true) : ""
def baseParams = rocRollerGetBaseParameters()
def nodes = new dockerNodes(nodeDetails, jobName, prj)
nodes.dockerArray.each {
_, docker ->
// parameters inherited from target job
["ROCROLLER_AMDGPU_URL", "ROCROLLER_AMDGPU_BUILD_NUMBER", "ROCROLLER_AMDGPU_BUILD_URI"].each {
param ->
def value = params?."${param}" ?: baseParams?."${param}";
if (value)
{
docker.buildArgs += " --build-arg ${param}=${value}"
}
}
if (uniqueTag)
{
docker.customFinalTag = uniqueTag
}
}
def commonGroovy
boolean formatCheck = false
def compileCommand =
{
platform, project->
commonGroovy = load "${project.paths.project_src_prefix}/.jenkins/common.groovy"
def useYAMLCPP = !platform.jenkinsLabel.contains('clang')
commonGroovy.runCompileCommand(platform, project, jobName, false, false, '', useYAMLCPP)
}
def testCommand =
{
platform, project->
commonGroovy.runTestCommand(platform, project)
}
buildProject(prj, formatCheck, nodes.dockerArray, compileCommand, testCommand, null)
}
def rocRollerGetBaseParameters() {
def baseParameters = jenkins.model.Jenkins.instance.getItemByFullName(env.JOB_NAME)
.parent.getJob(env.CHANGE_TARGET)
?.getProperty(hudson.model.ParametersDefinitionProperty)
?.parameterDefinitions
?.collect {[ it.name, it.defaultParameterValue.value]}
?.collectEntries();
return baseParameters;
}
ci: {
String urlJobName = auxiliary.getTopJobName(env.BUILD_URL)
def additionalParameters = [
string(
name: "ROCROLLER_AMDGPU_URL",
defaultValue: params?.ROCROLLER_AMDGPU_URL ?: "",
trim: true,
description: "URL to retrieve AMDGPU install package from"
),
string(
name: "ROCROLLER_AMDGPU_BUILD_NUMBER",
defaultValue: params?.ROCROLLER_AMDGPU_BUILD_NUMBER ?: "",
trim: true,
description: "Build number to use for AMDGPU"
),
string(
name: "ROCROLLER_AMDGPU_BUILD_URI",
defaultValue: params?.ROCROLLER_AMDGPU_BUILD_URI ?: "",
trim: true,
description: "Specify the specific artifact path for AMDGPU"
),
booleanParam(
name: "Unique Docker image tag",
defaultValue: false,
description: "Whether to tag the built docker image with a unique tag. WARNING: Use sparingly, each unique tag costs significant storage space."
)
]
auxiliary.registerAdditionalParameters(additionalParameters)
def propertyList = [
"enterprise":[pipelineTriggers([cron('0 1 * * 0')])],
"rocm-libraries":[pipelineTriggers([cron('0 1 * * 0')])]
]
propertyList = auxiliary.appendPropertyList(propertyList)
def jobNameList = [
"enterprise":([
"rocroller-ubuntu20-clang":['rocroller-compile', 'rocroller-gfx90a'],
"rocroller-ubuntu20-gcc":['rocroller-compile', 'rocroller-gfx90a']
]),
"rocm-libraries":([
"rocroller-ubuntu20-clang":['rocroller-compile', 'rocroller-gfx90a'],
"rocroller-ubuntu20-gcc":['rocroller-compile', 'rocroller-gfx90a']
])
]
jobNameList = auxiliary.appendJobNameList(jobNameList)
propertyList.each
{
jobName, property->
if (urlJobName == jobName)
properties(auxiliary.addCommonProperties(property))
}
jobNameList.each
{
jobName, nodeDetails->
if (urlJobName == jobName)
runCI(nodeDetails, jobName)
}
if(!jobNameList.keySet().contains(urlJobName))
{
properties(auxiliary.addCommonProperties([pipelineTriggers([cron('0 1 * * 6')])]))
runCI(["rocroller-ubuntu20-clang":['rocroller-compile']], urlJobName)
}
}