Logs on jenkins showed it trying to set the commit state on the wrong commits, the master of upstream, instead of the head of the PR
86 lines
2.8 KiB
Groovy
86 lines
2.8 KiB
Groovy
|
|
pipeline {
|
|
agent {label 'locm3-usb'}
|
|
parameters {
|
|
string(name:'pr_from_git_url', description:'the git url we are going to clone the pr from')
|
|
string(name:'pr_from_sha', description:'what we are going to build')
|
|
}
|
|
|
|
stages {
|
|
stage('checkout') {
|
|
steps {
|
|
sh "echo karl we are building $pr_from_sha"
|
|
checkout([$class: 'GitSCM', branches: [[name: "$pr_from_sha"]], userRemoteConfigs: [[url: "$pr_from_git_url"]]])
|
|
step([
|
|
class: "GitHubCommitStatusSetter",
|
|
commitShaSource: [$class: "ManuallyEnteredShaSource", sha: "$pr_from_sha"],
|
|
reposSource: [$class: "ManuallyEnteredRepositorySource", url: "$pr_from_git_url"],
|
|
contextSource: [$class: "DefaultCommitContextSource"],
|
|
statusResultSource: [ $class: "DefaultStatusResultSource"]
|
|
]);
|
|
}
|
|
}
|
|
stage('prepare') {
|
|
steps {
|
|
sh label: 'preparing python', script: '''
|
|
[ -f .env3 ] || python3 -m venv .env3
|
|
. .env3/bin/activate
|
|
pip install pyusb
|
|
pip install unittest-xml-reporting
|
|
'''
|
|
}
|
|
}
|
|
stage('build') {
|
|
steps {
|
|
sh '''
|
|
. .env3/bin/activate
|
|
make -j5 V=s
|
|
make -C tests/gadget-zero all V=s
|
|
'''
|
|
}
|
|
}
|
|
stage('Testprepare') {
|
|
steps {
|
|
sh label: 'gadget0', script: '''
|
|
cd tests/gadget-zero
|
|
echo "hla_serial 53FF6E066765505136472567" > openocd.stm32f3-disco.local.cfg
|
|
echo "hla_serial 57FF6B064967485630481087" > openocd.stm32f4disco.local.cfg
|
|
'''
|
|
}
|
|
}
|
|
stage('flashin') {
|
|
steps {
|
|
dir('tests/gadget-zero') {
|
|
sh '''
|
|
make -f Makefile.stm32f3-disco flash V=1
|
|
make -f Makefile.stm32f4disco flash V=1
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
stage('run-test') {
|
|
steps {
|
|
sh '''
|
|
. .env3/bin/activate
|
|
cd tests/gadget-zero
|
|
rm -rf tests
|
|
python test_gadget0.py -X
|
|
for x in tests/*; do TT=$(basename \$x); sed -i "s/testcase\\ classname=\\"/testcase\\ classname=\\"\${TT}./g" \$x/TEST-*; done
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
junit 'tests/gadget-zero/tests/*/TEST-*.xml'
|
|
step([
|
|
$class: "GitHubCommitStatusSetter",
|
|
commitShaSource: [$class: "ManuallyEnteredShaSource", sha: "$pr_from_sha"],
|
|
reposSource: [$class: "ManuallyEnteredRepositorySource", url: "$pr_from_git_url"],
|
|
contextSource: [$class: "DefaultCommitContextSource"],
|
|
statusResultSource: [ $class: "DefaultStatusResultSource"]
|
|
]);
|
|
}
|
|
}
|
|
}
|