Merge pull request #84 from samchesney/feature/new-jenkins-agents

Update Jenkins Pipeline to use new agents
This commit is contained in:
Sam Chesney
2019-08-21 16:46:12 +01:00
committed by GitHub
7 changed files with 140 additions and 43 deletions

1
.gitignore vendored
View File

@@ -19,6 +19,7 @@
.DS_Store .DS_Store
test_results.csv test_results.csv
_build* _build*
**/.venv/**
# waf build files # waf build files
.lock-waf_* .lock-waf_*

7
Brewfile Normal file
View File

@@ -0,0 +1,7 @@
tap 'homebrew/core'
brew 'perl'
brew 'cpanm'
brew 'python@2'
brew 'pipenv'

View File

@@ -19,7 +19,7 @@ lib_xua Change Log
* Changes to dependencies: * Changes to dependencies:
- lib_spdif: Added dependency 3.0.0 - lib_spdif: Added dependency 3.1.0
- lib_xassert: Added dependency 3.0.1 - lib_xassert: Added dependency 3.0.1

158
Jenkinsfile vendored
View File

@@ -1,61 +1,141 @@
@Library('xmos_jenkins_shared_library@master') _ @Library('xmos_jenkins_shared_library@develop') _
getApproval()
pipeline { pipeline {
agent { agent none
label 'x86&&macOS&&Apps'
}
environment { environment {
VIEW = 'xua'
REPO = 'lib_xua' REPO = 'lib_xua'
VIEW = "${env.JOB_NAME.contains('PR-') ? REPO+'_'+env.CHANGE_TARGET : REPO+'_'+env.BRANCH_NAME}"
}
triggers {
/* Trigger this Pipeline on changes to the repos dependencies
*
* If this Pipeline is running in a pull request, the triggers are set
* on the base branch the PR is set to merge in to.
*
* Otherwise the triggers are set on the branch of a matching name to the
* one this Pipeline is on.
*/
upstream(
upstreamProjects:
(env.JOB_NAME.contains('PR-') ?
"../lib_device_control/${env.CHANGE_TARGET}," +
"../lib_dsp/${env.CHANGE_TARGET}," +
"../lib_i2c/${env.CHANGE_TARGET}," +
"../lib_logging/${env.CHANGE_TARGET}," +
"../lib_mic_array/${env.CHANGE_TARGET}," +
"../lib_spdif/${env.CHANGE_TARGET}," +
"../lib_xassert/${env.CHANGE_TARGET}," +
"../lib_xud/${env.CHANGE_TARGET}," +
"../tools_released/${env.CHANGE_TARGET}," +
"../tools_xmostest/${env.CHANGE_TARGET}," +
"../xdoc_released/${env.CHANGE_TARGET}"
:
"../lib_device_control/${env.BRANCH_NAME}," +
"../lib_dsp/${env.BRANCH_NAME}," +
"../lib_i2c/${env.BRANCH_NAME}," +
"../lib_logging/${env.BRANCH_NAME}," +
"../lib_mic_array/${env.BRANCH_NAME}," +
"../lib_spdif/${env.BRANCH_NAME}," +
"../lib_xassert/${env.BRANCH_NAME}," +
"../lib_xud/${env.BRANCH_NAME}," +
"../tools_released/${env.BRANCH_NAME}," +
"../tools_xmostest/${env.BRANCH_NAME}," +
"../xdoc_released/${env.BRANCH_NAME}"),
threshold: hudson.model.Result.SUCCESS
)
} }
options { options {
skipDefaultCheckout() skipDefaultCheckout()
} }
stages { stages {
stage('Get view') { stage('Basic tests') {
steps { agent {
prepareAppsSandbox("${VIEW}", "${REPO}") label 'x86_64&&brew'
} }
} stages {
stage('Library checks') { stage('Get view') {
steps { steps {
xcoreLibraryChecks("${REPO}") xcorePrepareSandbox("${VIEW}", "${REPO}")
} }
} }
stage('Tests') { stage('Library checks') {
steps { steps {
runXmostest("${REPO}", 'tests') xcoreLibraryChecks("${REPO}")
} }
} }
stage('Host builds') { stage('Tests') {
steps { steps {
dir("${REPO}") { runXmostest("${REPO}", 'tests')
dir("${REPO}") { }
dir('host') { }
dir('xmosdfu') { stage('xCORE builds') {
sh 'make -f Makefile.OSX64' steps {
dir("${REPO}") {
xcoreAllAppNotesBuild('examples')
dir("${REPO}") {
runXdoc('doc')
} }
} }
} }
} }
} }
post {
cleanup {
xcoreCleanSandbox()
}
}
} }
stage('xCORE builds') { stage('Build host apps') {
steps { failFast true
dir("${REPO}") { parallel {
xcoreAllAppNotesBuild('examples') stage('Build Linux host app') {
dir("${REPO}") { agent {
runXdoc('doc') label 'x86_64&&brew&&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&&brew&&macOS'
}
steps {
xcorePrepareSandbox("${VIEW}", "${REPO}")
dir("${REPO}/${REPO}/host/xmosdfu") {
sh 'make -f Makefile.OSX64'
}
}
post {
cleanup {
xcoreCleanSandbox()
}
} }
} }
} }
} }
} stage('Update') {
post { agent {
success { label 'x86_64&&brew'
updateViewfiles() }
} steps {
cleanup { updateViewfiles()
cleanWs() }
post {
cleanup {
cleanWs()
}
}
} }
} }
} }

7
Pipfile Normal file
View File

@@ -0,0 +1,7 @@
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
flake8 = "*"

2
cpanfile Normal file
View File

@@ -0,0 +1,2 @@
requires 'File::Copy::Recursive';
requires 'LWP::Simple'

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2011-2018, XMOS Ltd, All rights reserved // Copyright (c) 2011-2019, XMOS Ltd, All rights reserved
/** /**
* @file xua_ep0_descriptors.h * @file xua_ep0_descriptors.h
* @brief Device Descriptors * @brief Device Descriptors