Skip to content
Snippets Groups Projects
Commit 03cda480 authored by Florian Walch's avatar Florian Walch
Browse files

CI: Move scripts, use Docker for Jenkins.

parent bf5bc2aa
No related branches found
No related tags found
No related merge requests found
FROM osrf/ros:kinetic-desktop-xenial
RUN apt-get update && apt-get install -y \
clang \
clang-format \
clang-tidy \
ros-kinetic-ros-control
#!/bin/sh
set -e
. /opt/ros/kinetic/setup.sh
rm -f src/CMakeLists.txt
catkin_init_workspace src
rm -rf build-debug
mkdir build-debug
cd build-debug
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../src
. devel/setup.sh
cmake --build .
cmake --build . --target tests
ctest -V
cmake --build . --target check-format
cmake --build . --target check-tidy
...@@ -3,50 +3,48 @@ ...@@ -3,50 +3,48 @@
node { node {
step([$class: 'StashNotifier']) step([$class: 'StashNotifier'])
def gitCommit
try { try {
stage('Checkout') { dir('src/franka_ros') {
dir('catkin_ws/src') {
checkout scm checkout scm
gitCommit = sh(script: 'git rev-parse HEAD', returnStdout: true).trim()
} }
dir('libfranka') { sh 'rm -rf dist'
// TODO(walc_fl): Remove hard-coded repository URL dir('dist') {
checkout resolveScm(source: [$class: 'GitSCMSource', remote: 'https://github.com/frankaemika/libfranka.git', try {
credentialsId: '6a639baf-566a-4e66-b089-74cd9ecb38a8', includes: '*', excludes: '', step([$class: 'CopyArtifact',
extensions: [[$class: 'SubmoduleOption', parentCredentials: true, recursiveSubmodules: true]]], filter: 'libfranka-*-amd64.tar.gz',
targets: [BRANCH_NAME, 'master']) fingerprintArtifacts: true,
} projectName: "SWDEV/libfranka/${BRANCH_NAME}",
selector: [$class: 'StatusBuildSelector', stable: false]])
} catch (e) {
// Fall back to master branch.
step([$class: 'CopyArtifact',
filter: 'libfranka-*-amd64.tar.gz',
fingerprintArtifacts: true,
projectName: "SWDEV/libfranka/master",
selector: [$class: 'StatusBuildSelector', stable: false]])
}
sh '''
tar xfz libfranka-*-amd64.tar.gz
ln -sf libfranka-*-amd64 libfranka
'''
} }
stage('Build libfranka') { docker.build('franka_ros-ci-worker', 'src/franka_ros/.ci').inside {
dir('libfranka/build') { withEnv(["CMAKE_PREFIX_PATH+=${env.WORKSPACE}/dist/libfranka/lib/cmake/Franka",
sh 'cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_COVERAGE=OFF -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF ..' "ROS_HOME=${env.WORKSPACE}/ros-home"]) {
sh 'cmake --build .' stage('Build & Lint (Debug)') {
sh 'src/franka_ros/.ci/debug.sh'
junit 'build-debug/test_results/**/*.xml'
} }
} }
dir('catkin_ws') {
stage('Build in debug mode') {
env.FRANKA_DIR = "${pwd()}/../libfranka/build"
sh 'src/scripts/ci/debug-build.sh'
} }
stage('Archive results') {
junit 'build/test_results/**/*.xml'
}
}
currentBuild.result = 'SUCCESS' currentBuild.result = 'SUCCESS'
} catch (e) { } catch (e) {
currentBuild.result = 'FAILED' currentBuild.result = 'FAILED'
throw e; throw e;
} finally { } finally {
// Explicitly specify commit hash, otherwise Stash will get notified about the `libfranka` commit as well.
if (gitCommit) {
step([$class: 'StashNotifier', commitSha1: gitCommit])
} else {
step([$class: 'StashNotifier']) step([$class: 'StashNotifier'])
} }
} }
}
#!/bin/sh
set -e
. /opt/ros/kinetic/setup.sh
rm -rf build devel
catkin_make --cmake-args -DFranka_DIR:PATH=$FRANKA_DIR -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
. devel/setup.sh
catkin_make -j1 check-format
catkin_make -j1 check-tidy
catkin_make run_tests
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment