forked from PAWPAW-Mirror/lib_xua
187 lines
4.8 KiB
Groovy
187 lines
4.8 KiB
Groovy
@Library('xmos_jenkins_shared_library@v0.27.0') _
|
|
|
|
getApproval()
|
|
|
|
pipeline {
|
|
agent none
|
|
environment {
|
|
REPO = 'lib_xua'
|
|
VIEW = getViewName(REPO)
|
|
TOOLS_VERSION = "15.2.1" // For unit tests
|
|
}
|
|
options {
|
|
skipDefaultCheckout()
|
|
}
|
|
stages {
|
|
stage('Basic tests') {
|
|
agent {
|
|
label 'x86_64 && linux'
|
|
}
|
|
stages {
|
|
stage('Get view') {
|
|
steps {
|
|
xcorePrepareSandbox("${VIEW}", "${REPO}")
|
|
}
|
|
}
|
|
stage('Library checks') {
|
|
steps {
|
|
xcoreLibraryChecks("${REPO}", false)
|
|
}
|
|
}
|
|
stage('Testing') {
|
|
failFast true
|
|
parallel {
|
|
stage('Tests') {
|
|
steps {
|
|
dir("${REPO}/tests"){
|
|
viewEnv(){
|
|
withVenv{
|
|
sh "xmake -C test_midi -j" // Xdist does not like building so do here
|
|
runPytest('--numprocesses=auto -vvv')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Unity tests') {
|
|
steps {
|
|
dir("${REPO}/tests/xua_unit_tests") {
|
|
withTools("${env.TOOLS_VERSION}") {
|
|
withVenv {
|
|
withEnv(["XMOS_CMAKE_PATH=${WORKSPACE}/xcommon_cmake"]) {
|
|
sh "cmake -G 'Unix Makefiles' -B build"
|
|
sh 'xmake -C build -j'
|
|
runPython("pytest -s --junitxml=pytest_unity.xml")
|
|
junit "pytest_unity.xml"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('xCORE builds') {
|
|
steps {
|
|
dir("${REPO}") {
|
|
xcoreAllAppNotesBuild('examples')
|
|
dir("${REPO}") {
|
|
runXdoc('doc')
|
|
}
|
|
}
|
|
// Archive all the generated .pdf docs
|
|
archiveArtifacts artifacts: "${REPO}/**/pdf/*.pdf", fingerprint: true, allowEmptyArchive: true
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
cleanup {
|
|
xcoreCleanSandbox()
|
|
}
|
|
}
|
|
}
|
|
stage('Build host apps') {
|
|
failFast true
|
|
parallel {
|
|
stage('Build Linux host app') {
|
|
agent {
|
|
label 'x86_64&&linux'
|
|
}
|
|
steps {
|
|
xcorePrepareSandbox("${VIEW}", "${REPO}")
|
|
dir("${REPO}/${REPO}/host/xmosdfu") {
|
|
sh 'make -f Makefile.Linux64'
|
|
}
|
|
}
|
|
post {
|
|
cleanup {
|
|
xcoreCleanSandbox()
|
|
}
|
|
}
|
|
}
|
|
stage('Build Mac host app') {
|
|
agent {
|
|
label 'x86_64&&macOS'
|
|
}
|
|
steps {
|
|
xcorePrepareSandbox("${VIEW}", "${REPO}")
|
|
dir("${REPO}/${REPO}/host/xmosdfu") {
|
|
sh 'make -f Makefile.OSX64'
|
|
}
|
|
dir("${REPO}/host_usb_mixer_control") {
|
|
sh 'make -f Makefile.OSX'
|
|
sh 'mkdir OSX/x86'
|
|
sh 'mv xmos_mixer OSX/x86/xmos_mixer'
|
|
archiveArtifacts artifacts: "OSX/x86/xmos_mixer", fingerprint: true
|
|
}
|
|
}
|
|
post {
|
|
cleanup {
|
|
xcoreCleanSandbox()
|
|
}
|
|
}
|
|
}
|
|
stage('Build Pi host app') {
|
|
agent {
|
|
label 'pi'
|
|
}
|
|
steps {
|
|
dir("${REPO}") {
|
|
checkout scm
|
|
dir("${REPO}/host/xmosdfu") {
|
|
sh 'make -f Makefile.Pi'
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
cleanup {
|
|
xcoreCleanSandbox()
|
|
}
|
|
}
|
|
}
|
|
stage('Build Windows host app') {
|
|
agent {
|
|
label 'x86_64&&windows'
|
|
}
|
|
steps {
|
|
dir("${REPO}") {
|
|
checkout scm
|
|
dir("${REPO}/host/xmosdfu") {
|
|
withVS("vcvars32.bat") {
|
|
bat "nmake /f Makefile.Win32"
|
|
}
|
|
}
|
|
dir("host_usb_mixer_control") {
|
|
withVS() {
|
|
bat 'msbuild host_usb_mixer_control.vcxproj /property:Configuration=Release /property:Platform=x64'
|
|
}
|
|
bat 'mkdir Win\\x64'
|
|
bat 'mv bin/Release/x64/host_usb_mixer_control.exe Win/x64/xmos_mixer.exe'
|
|
archiveArtifacts artifacts: "Win/x64/xmos_mixer.exe", fingerprint: true
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
cleanup {
|
|
xcoreCleanSandbox()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('Update') {
|
|
agent {
|
|
label 'x86_64 && linux'
|
|
}
|
|
steps {
|
|
updateViewfiles()
|
|
}
|
|
post {
|
|
cleanup {
|
|
xcoreCleanSandbox()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|