Files
3d_audio/lib_xcore_math/Jenkinsfile
Steven Dan d8b2974133 init
2025-12-11 09:43:42 +08:00

246 lines
8.1 KiB
Groovy

@Library('xmos_jenkins_shared_library@v0.34.0')
def runningOn(machine) {
println "Stage running on:"
println machine
}
getApproval()
pipeline {
agent none
environment {
REPO = 'lib_xcore_math'
}
parameters {
string(
name: 'TOOLS_VERSION',
defaultValue: '15.3.0',
description: 'The XTC tools version'
)
booleanParam(
name: 'XMATH_SMOKE_TEST',
defaultValue: true,
description: 'Enable smoke run'
)
string(
name: 'XMOSDOC_VERSION',
defaultValue: 'v6.1.2',
description: 'The xmosdoc version'
)
string(
name: 'INFR_APPS_VERSION',
defaultValue: 'develop',
description: 'The infr_apps version'
)
} // parameters
options {
skipDefaultCheckout()
timestamps()
buildDiscarder(xmosDiscardBuildSettings())
} // options
stages {
stage('Build and test') {
parallel {
stage('Linux build & test') {
agent {
label 'xcore.ai'
}
stages {
stage('Examples') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
checkout scm
withTools(params.TOOLS_VERSION) {
dir('examples') {
// xs3a build
sh 'cmake -B build_xs3a -G "Unix Makefiles"'
sh 'xmake -C build_xs3a -j'
// x86 build
sh 'cmake -B build_x86 -G "Unix Makefiles" -D BUILD_NATIVE=TRUE'
sh 'xmake -C build_x86 -j'
}
}
}
}
} // Build examples
stage('Unit tests xs3a') {
steps {
withTools(params.TOOLS_VERSION) {
dir('lib_xcore_math/tests') {
sh "cmake -B build_xs3a -DXMATH_SMOKE_TEST=${params.XMATH_SMOKE_TEST} -G \"Unix Makefiles\""
sh 'xmake -C build_xs3a -j'
sh 'xrun --xscope --id 0 --args bfp_tests/bin/bfp_tests.xe -v'
sh 'xrun --xscope --id 0 --args dct_tests/bin/dct_tests.xe -v'
sh 'xrun --xscope --id 0 --args fft_tests/bin/fft_tests.xe -v'
sh 'xrun --xscope --id 0 --args filter_tests/bin/filter_tests.xe -v'
sh 'xrun --xscope --id 0 --args scalar_tests/bin/scalar_tests.xe -v'
sh 'xrun --xscope --id 0 --args vect_tests/bin/vect_tests.xe -v'
sh 'xrun --xscope --id 0 --args xs3_tests/bin/xs3_tests.xe -v'
}
}
}
} // Unit tests xs3a
stage('Unit tests x86') {
steps {
withTools(params.TOOLS_VERSION) {
dir('lib_xcore_math/tests') {
sh "cmake -B build_x86 -DXMATH_SMOKE_TEST=${params.XMATH_SMOKE_TEST} -G \"Unix Makefiles\" -D BUILD_NATIVE=TRUE"
sh 'xmake -C build_x86 -j'
sh './bfp_tests/bin/bfp_tests -v'
sh './dct_tests/bin/dct_tests -v'
sh './fft_tests/bin/fft_tests -v'
sh './filter_tests/bin/filter_tests -v'
sh './scalar_tests/bin/scalar_tests -v'
sh './vect_tests/bin/vect_tests -v'
sh './xs3_tests/bin/xs3_tests -v'
}
}
}
} // Unit tests x86
stage('Library checks') {
steps {
runLibraryChecks("${WORKSPACE}/${REPO}", "${params.INFR_APPS_VERSION}")
}
}
stage('Legacy build') {
steps {
runningOn(env.NODE_NAME)
sh 'git clone --branch=v1.0.0 git@github.com:xmos/xmos_cmake_toolchain'
dir("${REPO}") {
checkout scm
withTools(params.TOOLS_VERSION) {
dir('tests/legacy_build') {
// legacy XCommon
sh 'xmake -j4'
sh 'xrun --io --id 0 bin/legacy_build.xe'
// legacy CMake
sh "cmake -B build --toolchain=${WORKSPACE}/xmos_cmake_toolchain/xs3a.cmake"
sh 'xmake -C build -j'
sh 'xrun --io --id 0 build/legacy_cmake_build.xe'
}
}
}
}
} // Legacy build
} // stages
post {
cleanup {
xcoreCleanSandbox()
}
}
} // Linux build and test
stage('Windows build & test') {
agent {
label 'windows10&&unified'
}
stages {
stage('Examples') {
steps {
runningOn(env.NODE_NAME)
dir('lib_xcore_math') {
checkout scm
withTools(params.TOOLS_VERSION) {
dir('examples') {
// xs3a build
bat 'cmake -B build_xs3a -G "Unix Makefiles"'
bat 'xmake -C build_xs3a'
withVS {
// x86 build
bat 'cmake -B build_x86 -G Ninja -D BUILD_NATIVE=TRUE'
bat 'ninja -C build_x86'
}
}
}
}
}
} // Build
stage('Unit tests x86') {
steps {
dir('lib_xcore_math/tests') {
withTools(params.TOOLS_VERSION) {
withVS {
bat 'cmake -B build_x86 -DXMATH_SMOKE_TEST=${params.XMATH_SMOKE_TEST} -G Ninja -D BUILD_NATIVE=TRUE'
bat 'ninja -C build_x86'
bat 'bfp_tests\\bin\\bfp_tests.exe -v'
bat 'dct_tests\\bin\\dct_tests.exe -v'
bat 'fft_tests\\bin\\fft_tests.exe -v'
bat 'filter_tests\\bin\\filter_tests.exe -v'
bat 'scalar_tests\\bin\\scalar_tests.exe -v'
bat 'vect_tests\\bin\\vect_tests.exe -v'
bat 'xs3_tests\\bin\\xs3_tests.exe -v'
}
}
}
}
} // Unit tests x86
stage('Legacy build') {
steps {
runningOn(env.NODE_NAME)
bat 'git clone --branch=v1.0.0 git@github.com:xmos/xmos_cmake_toolchain'
dir('lib_xcore_math') {
checkout scm
withTools(params.TOOLS_VERSION) {
withVS {
dir('tests/legacy_build') {
// legacy XCommon
bat 'xmake --jobs 4'
// legacy CMake
bat "cmake -B build --toolchain=${WORKSPACE}/xmos_cmake_toolchain/xs3a.cmake -G Ninja"
bat 'ninja -C build'
}
}
}
}
}
} // Legacy build
} // stages
post {
cleanup {
xcoreCleanSandbox()
}
}
} // Windows builds
stage ('Build documentation') {
agent {
label 'documentation'
}
stages {
stage('Documentation') {
steps {
runningOn(env.NODE_NAME)
dir("${REPO}") {
checkout scm
warnError("Docs") {
buildDocs()
} // warnError("Docs")
} // dir("${REPO}")
} // steps
} // stage('Build Documentation')
} // stages
post {
cleanup {
xcoreCleanSandbox()
}
}
} // Build Documentation
} // parallel
} // Bullds and tests
} // stages
} // pipeline