You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.9 KiB
85 lines
2.9 KiB
4 months ago
|
|
||
|
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: "https://github.com/libopencm3/libopencm3"],
|
||
|
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 V=1
|
||
|
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 {
|
||
|
step([$class: "GitHubCommitStatusSetter",
|
||
|
commitShaSource: [$class: "ManuallyEnteredShaSource", sha: "$pr_from_sha"],
|
||
|
reposSource: [$class: "ManuallyEnteredRepositorySource", url: "https://github.com/libopencm3/libopencm3"],
|
||
|
contextSource: [$class: "DefaultCommitContextSource"],
|
||
|
statusResultSource: [ $class: "DefaultStatusResultSource"]
|
||
|
]);
|
||
|
junit 'tests/gadget-zero/tests/*/TEST-*.xml'
|
||
|
}
|
||
|
}
|
||
|
}
|