88 regels
2.8 KiB
Groovy
88 regels
2.8 KiB
Groovy
#!/usr/bin/env groovy
|
|
// Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved.
|
|
// This shared library is available at https://github.com/ROCmSoftwarePlatform/rccl
|
|
@Library('rocJenkins@rccl') _
|
|
|
|
// 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.*
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
// Mostly generated from snippet generator 'properties; set job properties'
|
|
// Time-based triggers added to execute nightly tests, eg '30 2 * * *' means 2:30 AM
|
|
properties([
|
|
pipelineTriggers([cron('0 1 * * *'), [$class: 'PeriodicFolderTrigger', interval: '5m']]),
|
|
buildDiscarder(logRotator(
|
|
artifactDaysToKeepStr: '',
|
|
artifactNumToKeepStr: '',
|
|
daysToKeepStr: '',
|
|
numToKeepStr: '10')),
|
|
disableConcurrentBuilds(),
|
|
[$class: 'CopyArtifactPermissionProperty', projectNames: '*']
|
|
])
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
import java.nio.file.Path;
|
|
|
|
rcclCI:
|
|
{
|
|
|
|
def rccl = new rocProject('rccl')
|
|
// customize for project
|
|
rccl.paths.build_command = './install.sh'
|
|
|
|
// Define test architectures, optional rocm version argument is available
|
|
def nodes = new dockerNodes(['rccl && ubuntu'], rccl)
|
|
|
|
boolean formatCheck = false
|
|
|
|
def compileCommand =
|
|
{
|
|
platform, project->
|
|
|
|
project.paths.construct_build_prefix()
|
|
def command = """#!/usr/bin/env bash
|
|
set -x
|
|
cd ${project.paths.project_build_prefix}
|
|
LD_LIBRARY_PATH=/opt/rocm/hcc/lib CXX= ${project.paths.build_command} -t
|
|
"""
|
|
|
|
platform.runCommand(this,command)
|
|
}
|
|
|
|
def testCommand =
|
|
{
|
|
platform, project->
|
|
|
|
def command = """#!/usr/bin/env bash
|
|
set -x
|
|
cd ${project.paths.project_build_prefix}/build/release/test/
|
|
HSA_FORCE_FINE_GRAIN_PCIE=1 ./UnitTests --gtest_output=xml --gtest_color=yes
|
|
"""
|
|
|
|
platform.runCommand(this,command)
|
|
//junit "${project.paths.project_build_prefix}/build/release/*.xml"
|
|
}
|
|
|
|
def packageCommand =
|
|
{
|
|
platform, project->
|
|
|
|
def command = """
|
|
set -x
|
|
cd ${project.paths.project_build_prefix}/build/release
|
|
make package
|
|
rm -rf package && mkdir -p package
|
|
mv *.deb package/
|
|
"""
|
|
platform.runCommand(this,command)
|
|
platform.archiveArtifacts(this, """${project.paths.project_build_prefix}/build/release/package/*.deb""")
|
|
}
|
|
|
|
buildProject(rccl, formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand)
|
|
|
|
}
|