-
-
Save doytsujin/c959d9032e2687cbdfa7fb8da98487c7 to your computer and use it in GitHub Desktop.
Failing jenkins pipeline
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.nio.file.Paths | |
def jobName = "rock-master-base-cmake" | |
def jobPackageName = "base/cmake" | |
def upstreamJobNames = [] | |
def upstreamPackageNames = [] | |
@NonCPS | |
def isUpstreamOK(jobName, buildId) | |
{ | |
def job = Jenkins.instance.getItem(jobName) | |
if (!job) | |
{ | |
error("cannot find upstream job ${jobName}") | |
} | |
def build = job.getBuild(buildId.toString()) | |
if (!build) | |
{ | |
error("cannot find build ${buildId} of job ${jobName}") | |
} | |
def result = build.getResult() | |
if (result) | |
{ | |
if (result == Result.SUCCESS || result == Result.UNSTABLE) | |
{ | |
return 'OK' | |
} | |
else | |
{ | |
return 'FAILED' | |
} | |
} | |
else | |
{ | |
return 'IN_PROGRESS' | |
} | |
} | |
@NonCPS | |
def getTriggerBuild(currentBuild) | |
{ | |
def triggerBuild = currentBuild.rawBuild.getCause(hudson.model.Cause$UpstreamCause) | |
if (triggerBuild) { | |
return [triggerBuild.getUpstreamProject(), triggerBuild.getUpstreamBuild()] | |
} | |
return null | |
} | |
@NonCPS | |
def findBuildTriggeredBy(job, triggerJob, triggerBuild) | |
{ | |
def jobBuilds = job.getBuilds() | |
for (buildIndex = 0; buildIndex < jobBuilds.size(); ++buildIndex) | |
{ | |
def build = jobBuilds[buildIndex] | |
def buildCause = build.getCause(hudson.model.Cause$UpstreamCause) | |
if (buildCause) | |
{ | |
def causeJob = buildCause.getUpstreamProject() | |
def causeBuild = buildCause.getUpstreamBuild() | |
if (causeJob == triggerJob && causeBuild == triggerBuild) | |
{ | |
return build.getNumber() | |
} | |
} | |
} | |
return null | |
} | |
def getUpstreamBuilds(upstreamJobNames, triggerJob, triggerBuild) | |
{ | |
def upstreamBuilds = [] | |
// Iterate list -- NOTE: we cannot use groovy style or even modern java style iteration | |
for (jobIndex = 0; jobIndex < upstreamJobNames.size(); ++jobIndex) | |
{ | |
def jobName = upstreamJobNames[jobIndex] | |
if (jobName == triggerJob) | |
{ | |
echo "upstream build: ${jobName}#${triggerBuild}" | |
upstreamBuilds << [jobName, triggerBuild] | |
} | |
else | |
{ | |
def job = Jenkins.instance.getItem(jobName) | |
if (!job) | |
{ | |
echo "${jobName} does not exist yet, aborting" | |
return null | |
} | |
def matchingBuild = findBuildTriggeredBy(job, triggerJob, triggerBuild) | |
if (!matchingBuild) | |
{ | |
if (triggerJob) { | |
echo "no build from ${jobName} has been triggered by ${triggerJob}#${triggerBuild}, using last successful build" | |
} | |
else { | |
echo "manual build trigger, using last successful build for ${jobName}" | |
} | |
if (job.getLastSuccessfulBuild()) | |
matchingBuild = job.getLastSuccessfulBuild().getNumber() | |
else | |
{ | |
echo "${jobName} has no successful build, aborting" | |
return null | |
} | |
} | |
echo "upstream build: ${jobName}#${matchingBuild}" | |
upstreamBuilds << [jobName, matchingBuild] | |
} | |
} | |
return upstreamBuilds | |
} | |
def waitForUpstreamBuilds(upstreamBuilds) | |
{ | |
// Iterate list -- NOTE: we cannot use groovy style or even modern java style iteration | |
for (upstreamBuildIndex = 0; upstreamBuildIndex < upstreamBuilds.size(); ++upstreamBuildIndex) | |
{ | |
def entry = upstreamBuilds[upstreamBuildIndex] | |
def upstreamJobName = entry[0] | |
def upstreamBuildId = entry[1] | |
while (true) | |
{ | |
def status = isUpstreamOK(upstreamJobName, upstreamBuildId) | |
if (status == 'OK') | |
{ | |
break | |
} | |
else if (status == 'IN_PROGRESS') | |
{ | |
echo "waiting for job ${upstreamJobName}#${upstreamBuildId} to finish" | |
sleep 10 | |
} | |
else if (status == 'FAILED') | |
{ | |
echo "${upstreamJobName}#${upstreamBuildId} did not finish successfully, aborting this build" | |
return false | |
} | |
} | |
} | |
return true | |
} | |
def makeUpstreamArtifactImporters(autoproj, fullWorkspaceDir, upstreamDir, | |
upstreamJobNames, upstreamPrefixes, upstreamBuilds) | |
{ | |
def fullUpstreamDir = "${fullWorkspaceDir}/${upstreamDir}" | |
dir(upstreamDir) { deleteDir() } | |
def upstreamArtifactImporters = [:] | |
for (jobIndex = 0; jobIndex < upstreamJobNames.size(); ++jobIndex) | |
{ | |
def jobName = upstreamJobNames[jobIndex] | |
def fullPrefix = upstreamPrefixes[jobIndex] | |
def buildId = upstreamBuilds[jobIndex][1] | |
def relativePrefix = Paths.get(fullWorkspaceDir).relativize(Paths.get(fullPrefix)).toString() | |
upstreamArtifactImporters[jobName] = { | |
dir(upstreamDir) { | |
step ([$class: 'CopyArtifact', | |
projectName: jobName, | |
filter: "${jobName}-prefix.zip", | |
selector: [$class: 'SpecificBuildSelector', buildNumber: buildId.toString()]]) | |
dir(jobName) { | |
unzip zipFile: "${fullUpstreamDir}/${jobName}-prefix.zip" | |
sh "${autoproj} jenkins relativize ./ '@WORKSPACE_ROOT@' '${fullWorkspaceDir}'" | |
} | |
} | |
dir(relativePrefix) { | |
sh "rsync '${fullUpstreamDir}/${jobName}/' './' --delete --recursive --safe-links --perms --checksum" | |
} | |
} | |
} | |
return upstreamArtifactImporters | |
} | |
def installUpstreamArtifacts(autoproj, fullWorkspaceDir, | |
jobPackageName, jobPackagePrefix, | |
upstreamJobNames, upstreamPackagePrefixes, upstreamBuilds) | |
{ | |
def upstreamDir = "artifacts/upstream" | |
parallel(makeUpstreamArtifactImporters( | |
autoproj, fullWorkspaceDir, upstreamDir, | |
upstreamJobNames, upstreamPackagePrefixes, upstreamBuilds) | |
) | |
// We don't need the upstream artifacts anymore, clear some disk space | |
dir(upstreamDir) { deleteDir() } | |
if (fileExists("lastPrefix")) { | |
sh "mv lastPrefix '${jobPackagePrefix}'" | |
} | |
return null | |
} | |
def handleDownstream(autoproj, fullWorkspaceDir, | |
jobName, jobPackagePrefix, artifactGlob) | |
{ | |
def downstreamDir = "artifacts/downstream" | |
def targetArtifactPath = "${fullWorkspaceDir}/${downstreamDir}/${jobName}-prefix.zip" | |
dir(downstreamDir) { deleteDir() } | |
dir("${downstreamDir}/${jobName}") { | |
sh "rsync '${jobPackagePrefix}/' './' -a --delete" | |
sh "${autoproj} jenkins relativize ./ '${fullWorkspaceDir}' '@WORKSPACE_ROOT@'" | |
zip zipFile: targetArtifactPath, glob: artifactGlob | |
} | |
dir(downstreamDir) { | |
archiveArtifacts artifacts: "*.zip" | |
deleteDir() | |
} | |
return null | |
} | |
def triggerDownstreamJobs(jobNames) { | |
for (jobIndex = 0; jobIndex < jobNames.size(); ++jobIndex) | |
{ | |
build job: "rock-master-" + jobNames[jobIndex], wait: false | |
} | |
return null | |
} | |
def triggeredByUpstream = false | |
def upstreamBuilds = [] | |
stage('waiting for upstream jobs to finish') { | |
def triggerBuild = getTriggerBuild(currentBuild) | |
if (triggerBuild) { | |
triggeredByUpstream = true; | |
} | |
else { | |
triggeredByUpstream = false; | |
triggerBuild = [null, null]; | |
} | |
upstreamBuilds = getUpstreamBuilds(upstreamJobNames, triggerBuild[0], triggerBuild[1]) | |
if (upstreamBuilds == null) | |
{ | |
currentBuild.result = 'NOT_BUILT'; | |
return; | |
} | |
if (!waitForUpstreamBuilds(upstreamBuilds)) { | |
currentBuild.result = 'NOT_BUILT'; | |
return | |
} | |
} | |
if (currentBuild.result == 'NOT_BUILT') | |
{ | |
return; | |
} | |
node(label: 'autoproj-jenkins') { | |
def fullWorkspaceDir = pwd() | |
def autoproj = "${fullWorkspaceDir}/dev/.autoproj/bin/autoproj" | |
dir('dev/install/log') { deleteDir() } | |
def jobPackagePrefix = null | |
def upstreamPackagePrefixes = null | |
stage('bootstrap') { | |
env.HOME = fullWorkspaceDir | |
sh 'cp -f "/opt/autoproj/bin/autoproj_install" ./autoproj_install' | |
def gemfile = "source \"https://rubygems.org\"\ngem 'autoproj', path: '/opt/autoproj'\ngem 'autobuild', path: '/opt/autobuild'\ngem 'autoproj-jenkins', path: '/opt/autoproj-jenkins'\n" | |
writeFile file: 'Gemfile', text: gemfile | |
def user_seed_config = "osdeps_mode: all\nGITORIOUS: http,ssh\nGITORIOUS_ROOT: https://git.gitorious.org\nGITORIOUS_PUSH_ROOT: '[email protected]:'\nGITORIOUS_PRIVATE_ROOT: '[email protected]:'\nGITHUB: http,ssh\nGITHUB_ROOT: https://github.com\nGITHUB_PUSH_ROOT: '[email protected]:'\nGITHUB_PRIVATE_ROOT: '[email protected]:'\nROCK_SELECTED_FLAVOR: master\nROCK_FLAVOR: master\nROCK_BRANCH: master\nUSE_OCL: false\nrtt_target: gnulinux\nrtt_corba_implementation: omniorb\ntypelib_cxx_loader: castxml\ncxx11: false\n" | |
writeFile file: 'user_seed.yml', text: user_seed_config | |
def config = "osdeps_mode: 'all'\nseparate_prefixes: true\nautoproj_test_utility_default: true\nimport_log_enabled: false\njenkins_ci: true\nmanifest_source:\n :type: git\n :url: https://github.com/rock-core/buildconf\n :branch: ci\n\nosdeps_mode: all\nGITORIOUS: http,ssh\nGITORIOUS_ROOT: https://git.gitorious.org\nGITORIOUS_PUSH_ROOT: '[email protected]:'\nGITORIOUS_PRIVATE_ROOT: '[email protected]:'\nGITHUB: http,ssh\nGITHUB_ROOT: https://github.com\nGITHUB_PUSH_ROOT: '[email protected]:'\nGITHUB_PRIVATE_ROOT: '[email protected]:'\nROCK_SELECTED_FLAVOR: master\nROCK_FLAVOR: master\nROCK_BRANCH: master\nUSE_OCL: false\nrtt_target: gnulinux\nrtt_corba_implementation: omniorb\ntypelib_cxx_loader: castxml\ncxx11: false\n\n" | |
writeFile file: 'seed.yml', text: config | |
dir('dev') { | |
sh "ruby ../autoproj_install --skip-stage2 --seed-config=../seed.yml --gems-path=${env.JENKINS_HOME}/cache/gems --gemfile=../Gemfile" | |
if (fileExists('autoproj')) { | |
dir('autoproj') { deleteDir() } | |
} | |
sh "AUTOPROJ_BOOTSTRAP_IGNORE_NONEMPTY_DIR=1 ruby .autoproj/bin/autoproj bootstrap 'git' 'https://github.com/rock-core/buildconf' 'branch=ci'" | |
sh ".autoproj/bin/aup autoproj/ --force-reset --auto-exclude" | |
} | |
env.AUTOPROJ_CURRENT_ROOT = "${fullWorkspaceDir}/dev" | |
def jenkins_dependency_overrides = "setup_package(\"base/cmake\") do |pkg|\n \nend\n" | |
writeFile file: 'dev/autoproj/overrides.d/99_jenkins_dependency_overrides.rb', | |
text: jenkins_dependency_overrides | |
def packagePrefixes = sh(script: "${autoproj} locate --no-cache --prefix '${jobPackageName}' ${upstreamPackageNames.join(" ")}", returnStdout: true). | |
split("\n") | |
jobPackagePrefix = packagePrefixes[0] | |
upstreamPackagePrefixes = packagePrefixes.tail() | |
} | |
stage('install upstream artifacts') { | |
installUpstreamArtifacts(autoproj, fullWorkspaceDir, | |
jobPackageName, jobPackagePrefix, | |
upstreamJobNames, upstreamPackagePrefixes, upstreamBuilds) | |
} | |
dir('dev') { | |
stage('prepare build') { | |
dir('base/cmake') { | |
if (fileExists('.git')) { | |
sh "${autoproj} unpatch ." | |
} | |
git poll: true, url: 'https://github.com/rock-core/base-cmake.git', push_to: '[email protected]:/rock-core/base-cmake.git', interactive: 'false', retry_count: '10', repository_id: 'github:/rock-core/base-cmake.git', branch: 'master' | |
sh "${autoproj} patch ." | |
} | |
sh "${autoproj} test disable 'base/cmake'" | |
sh "${autoproj} osdeps 'base/cmake' 'pkg-config'" | |
} | |
stage('build') { | |
try { | |
sh "${autoproj} build --force --deps=f 'base/cmake' -p1" | |
} | |
catch(err) { | |
archive includes: 'install/base/cmake/log/base/cmake-*.log' | |
archive includes: 'install/log/autoproj-osdeps.log' | |
throw(err) | |
} | |
archive includes: 'install/base/cmake/log/base/cmake-*.log' | |
archive includes: 'install/log/autoproj-osdeps.log' | |
} | |
} | |
stage('handle downstream') { | |
handleDownstream(autoproj, fullWorkspaceDir, | |
jobName, jobPackagePrefix, "**/*") | |
if (! triggeredByUpstream) { | |
downstream_jobs = ["base-logging", | |
"tools-orogen_metadata", | |
"gui-vizkit", | |
"gui-vizkit3d", | |
"base-console_bridge", | |
"base-types", | |
"base-templates-cmake_lib", | |
"planning-exploration", | |
"drivers-gps_base", | |
"gui-vizkit3d_pcl", | |
"perception-apriltags", | |
"slam-threed_odometry", | |
"gui-pose3d_editor", | |
"control-visp", | |
"slam-uwv_kalman_filters", | |
"perception-depth_map_preprocessing", | |
"slam-gtsam", | |
"drivers-imu_myahrs_plus", | |
"perception-projection", | |
"gui-qcam_calib", | |
"perception-viso2", | |
"planning-randward", | |
"planning-arvand_herd", | |
"planning-fd_cedalion", | |
"planning-fd_uniform", | |
"planning-bfsf", | |
"planning-fast_downward", | |
"slam-pose_estimation", | |
"slam-gmapping", | |
"drivers-dps_desertstar_ssp1", | |
"external-aruco", | |
"external-snap", | |
"external-gexf", | |
"control-robot_frames", | |
"control-kdl_conversions", | |
"data_processing-openann", | |
"data_processing-type_to_vector", | |
"drivers-video_capture_vlc", | |
"drivers-video_streamer_vlc", | |
"control-reflexxes", | |
"control-kdl", | |
"perception-libelas", | |
"planning-motion_planning_libraries", | |
"slam-hogman", | |
"drivers-orogen-imu_myahrs_plus", | |
"planning-orogen-exploration", | |
"drivers-orogen-imu_an_spatial", | |
"drivers-orogen-gps_base", | |
"slam-orogen-pcl", | |
"perception-orogen-apriltags", | |
"control-orogen-visp", | |
"control-orogen-uwv_dynamic_model", | |
"slam-orogen-uwv_kalman_filters", | |
"perception-orogen-depth_map_preprocessing", | |
"slam-orogen-simple_pose_integrator", | |
"control-orogen-robot_frames", | |
"drivers-orogen-kinect2", | |
"slam-orogen-threed_odometry", | |
"slam-orogen-gmapping", | |
"perception-orogen-projection", | |
"perception-orogen-virtual_view", | |
"control-orogen-cart_ctrl_wdls", | |
"control-orogen-auv_raw_command_converter", | |
"slam-orogen-north_seeker", | |
"slam-orogen-local_mapper", | |
"slam-orogen-localization", | |
"slam-orogen-pose_estimation", | |
"planning-orogen-traversability", | |
"drivers-orogen-dps_desertstar_ssp1", | |
"planning-orogen-motion_planning_libraries", | |
"tools-configmaps", | |
"build_tests-cmake-plain_package", | |
"build_tests-cmake-plain_cxx11_package", | |
"build_tests-cmake-another_plain_package", | |
"build_tests-cmake-headers_only_library", | |
"build_tests-cmake-cxx11_headers_only_library", | |
"build_tests-cmake-rock_activate_cxx11", | |
"build_tests-cmake-rock_library_add_public_dependencies", | |
"build_tests-cmake-rock_library_deps_pkgconfig", | |
"build_tests-cmake-rock_library_no_public_dependencies", | |
"build_tests-cmake-rock_library_make_all_dependencies_public", | |
"build_tests-cmake-var_ROCK_PUBLIC_CXX_STANDARD", | |
"build_tests-orogen-cxx11_dependency", | |
"build_tests-orogen-ro_ptr_import", | |
"build_tests-orogen-use_intermediate_type_on_interface", | |
"base-numeric", | |
"drivers-iodrivers_base", | |
"gui-control_ui", | |
"slam-envire", | |
"base-orogen-std", | |
"tools-logger", | |
"base-orogen-types", | |
"drivers-orogen-aggregator", | |
"drivers-orogen-transformer", | |
"drivers-orogen-iodrivers_base", | |
"multiagent-orogen-fipa_services", | |
"control-orogen-trajectory_generation", | |
"perception-orogen-video_streamer", | |
"perception-orogen-viso2", | |
"control-orogen-torque_estimator", | |
"slam-orogen-terrain_estimator", | |
"slam-orogen-eslam", | |
"planning-orogen-pddl_planner", | |
"planning-orogen-simple_path_planner", | |
"planning-orogen-heading_calculator", | |
"drivers-orogen-phidgets", | |
"drivers-orogen-imu_stim300", | |
"drivers-orogen-imu_imar", | |
"drivers-orogen-alt_imagenex", | |
"drivers-orogen-ctd_seabird", | |
"drivers-orogen-mbeam_imagenex", | |
"drivers-orogen-pressure_paroscientific", | |
"drivers-orogen-ucm_schilling", | |
"drivers-orogen-act_schilling", | |
"drivers-orogen-phins_ixsea", | |
"drivers-orogen-velodyne_lidar", | |
"drivers-orogen-tofcamera_mesasr", | |
"drivers-orogen-camera_aravis", | |
"drivers-orogen-kinect", | |
"drivers-orogen-video_streamer_vlc", | |
"simulation-orogen-imumodel", | |
"drivers-orogen-servo_dynamixel", | |
"control-orogen-motor_controller", | |
"control-orogen-joint_dispatcher", | |
"data_processing-orogen-statistics", | |
"data_processing-orogen-type_to_vector", | |
"control-orogen-auv_rel_pos_controller", | |
"control-orogen-auv_control", | |
"control-orogen-kdl", | |
"drivers-orogen-ptu_directedperception", | |
"drivers-orogen-aria", | |
"control-orogen-trajectory_follower", | |
"control-orogen-waypoint_navigation", | |
"control-orogen-skid4_control", | |
"drivers-orogen-canbus", | |
"drivers-orogen-gps", | |
"drivers-orogen-hokuyo", | |
"drivers-orogen-xsens_imu", | |
"drivers-orogen-dynamixel", | |
"drivers-orogen-controldev", | |
"drivers-orogen-parport", | |
"drivers-orogen-wifimon", | |
"drivers-orogen-camera_base", | |
"drivers-orogen-camera_prosilica", | |
"drivers-orogen-fog_kvh", | |
"drivers-orogen-dvl_teledyne", | |
"drivers-orogen-camera_usb", | |
"drivers-orogen-camera_firewire", | |
"drivers-orogen-vicon", | |
"drivers-orogen-camera_v4l", | |
"drivers-orogen-sonar_tritech", | |
"drivers-orogen-laserscanner_sick", | |
"drivers-orogen-qualisys", | |
"drivers-orogen-laser_filter", | |
"drivers-orogen-taskmon", | |
"slam-orogen-orientation_estimator", | |
"slam-orogen-envire", | |
"slam-orogen-graph_slam", | |
"slam-orogen-odometry", | |
"slam-orogen-tilt_scan", | |
"perception-orogen-image_preprocessing", | |
"perception-orogen-stereo", | |
"planning-orogen-corridor_navigation", | |
"planning-orogen-corridor_planner", | |
"tutorials-orogen-tut_follower", | |
"tutorials-orogen-tut_brownian", | |
"tutorials-orogen-tut_deployment", | |
"tutorials-orogen-rock_tutorial", | |
"tutorials-orogen-tut_sensor", | |
"tutorials-orogen-message_producer", | |
"tutorials-orogen-message_consumer", | |
"simulation-orogen-mars", | |
"simulation-orogen-mars_addons", | |
"build_tests-orogen-ro_ptr", | |
"gui-robot_model", | |
"gui-point_cloud", | |
"slam-eslam", | |
"gui-vizkit_3d_plugins", | |
"drivers-velodyne_lidar", | |
"drivers-laser_filter", | |
"planning-corridor_planner", | |
"planning-vfh_star", | |
"slam-odometry", | |
"tutorials-rock_tutorial", | |
"tutorials-vizkit3d_plugin_tutorial", | |
"tools-class_loader", | |
"control-urdfdom", | |
"simulation-mars-smurf_loader", | |
"simulation-smurf_parser", | |
"tools-pocolog_cpp", | |
"tools-service_discovery", | |
"drivers-aggregator", | |
"perception-jpeg_conversion", | |
"perception-frame_helper", | |
"gui-rock_widget_collection", | |
"control-uwv_dynamic_model", | |
"control-ruby_sdformat", | |
"planning-lama", | |
"planning-pddl_planner", | |
"control-hysteresis_model", | |
"slam-terrain_estimator", | |
"gui-map2d", | |
"drivers-tofcamera_mesasr", | |
"drivers-imu_stim300", | |
"drivers-imu_imar", | |
"drivers-alt_imagenex", | |
"drivers-ctd_seabird", | |
"drivers-mbeam_imagenex", | |
"drivers-pressure_paroscientific", | |
"drivers-ucm_schilling", | |
"drivers-act_schilling", | |
"drivers-phins_ixsea", | |
"simulation-imumodel", | |
"control-kdl_parser", | |
"control-joint_dispatcher", | |
"drivers-ptu_directedperception", | |
"control-motor_controller", | |
"control-trajectory_follower", | |
"control-waypoint_navigation", | |
"drivers-base_schilling", | |
"drivers-canbus", | |
"drivers-mb500", | |
"drivers-hokuyo", | |
"drivers-xsens_imu", | |
"drivers-controldev", | |
"drivers-camera_interface", | |
"drivers-dvl_teledyne", | |
"drivers-camera_firewire", | |
"drivers-vicon", | |
"drivers-qualisys", | |
"drivers-sonar_tritech", | |
"perception-stereo", | |
"planning-nav_graph_search", | |
"planning-corridor_navigation", | |
"slam-pose_ekf", | |
"slam-quater_ikf", | |
"slam-quater_ukf", | |
"slam-graph_slam", | |
"multiagent-fipa_acl", | |
"tutorials-message_driver", | |
"tutorials-designer_widget_tutorial", | |
"simulation-mars-interfaces", | |
"simulation-mars-sim", | |
"control-urdfdom_headers", | |
"simulation-mars-common-gui-config_map_gui", | |
"simulation-mars-entity_generation-primitives", | |
"simulation-mars-plugins-SkyDomePlugin", | |
"simulation-mars-common-graphics-osg_material_manager", | |
"simulation-mars-common-graphics-osg_terrain", | |
"simulation-mars-common-gui-data_broker_plotter2", | |
"simulation-mars-entity_generation-entity_factory", | |
"simulation-mars-entity_generation-smurf", | |
"simulation-mars-plugins-Text3D", | |
"simulation-mars-common-utils", | |
"simulation-mars-graphics", | |
"simulation-mars-app", | |
"simulation-mars-viz", | |
"simulation-mars-scene_loader", | |
"drivers-dynamixel", | |
"drivers-fog_kvh", | |
"drivers-iCharger", | |
"drivers-laserscanner_sick", | |
"tools-orocos.rb", | |
"tools-syskit", | |
"drivers-actuator_dispatcher", | |
"bundles-rock", | |
"bundles-rock_multiagent", | |
"bundles-tutorials", | |
"multiagent-fipa_services", | |
"drivers-transformer", | |
"drivers-camera_aravis", | |
"drivers-camera_prosilica", | |
"drivers-camera_usb", | |
"planning-simple_path_planner", | |
"simulation-mars-plugins-entity_view", | |
"simulation-mars-plugins-TerrainPlugin", | |
"simulation-mars-plugins-PythonMars", | |
"simulation-mars-gui", | |
"simulation-mars-plugins-connexion_plugin", | |
"simulation-mars-plugins-constraint_plugin", | |
"simulation-mars-common-cfg_manager", | |
"simulation-mars-common-data_broker", | |
"tools-rest_api", | |
"tools-telemetry", | |
"base-scripts", | |
"base-templates-bundle", | |
"bundles-rock_auv", | |
"bundles-tutorials_scripts", | |
"simulation-mars-common-gui-gui_app", | |
"simulation-mars-common-gui-main_gui", | |
"simulation-mars-common-gui-cfg_manager_gui", | |
"simulation-mars-common-gui-lib_manager_gui", | |
"simulation-mars-common-gui-log_console", | |
"simulation-mars-common-gui-data_broker_gui", | |
"simulation-mars-common-gui-data_broker_plotter", | |
"gui-rock_webapp"] | |
triggerDownstreamJobs(downstream_jobs) | |
} | |
} | |
stage('tests') { | |
def test_timestamp_path = "${fullWorkspaceDir}/test-timestamp" | |
touch file: test_timestamp_path | |
def test_output_path = "${fullWorkspaceDir}/test" | |
def autoproj_test_failed = false | |
dir('dev') | |
{ | |
try { | |
sh "${autoproj} test enable 'base/cmake'" | |
sh "${autoproj} osdeps 'base/cmake'" | |
sh "${autoproj} build --deps=f 'base/cmake' -p1" | |
sh "${autoproj} test -p=1 'base/cmake'" | |
} | |
catch(err) { autoproj_test_failed = true } | |
try { sh "${autoproj} jenkins postprocess-tests --after=${test_timestamp_path} ${test_output_path} 'base/cmake'" } | |
catch(err) { autoproj_test_failed = true } | |
} | |
try { junit allowEmptyResults: true, keepLongStdio: true, testResults: "test/*.xml" } | |
catch(err) { autoproj_test_failed = true } | |
if (autoproj_test_failed) | |
{ | |
currentBuild.result = 'UNSTABLE' | |
} | |
} | |
// Move the current package prefix to a separate folder, to ensure that | |
// other workspaces don't have access to it. It's not strictly required, | |
// but is a good sanity check | |
dir('lastPrefix') { deleteDir() } | |
sh "mv '${jobPackagePrefix}' lastPrefix" | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Started by user admin | |
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: | |
General error during class generation: 296 | |
java.lang.ArrayIndexOutOfBoundsException: 296 | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.getCreateArraySignature(CallSiteWriter.java:58) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:317) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771) | |
at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:66) | |
at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:303) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeNormalConstructorCall(InvocationWriter.java:568) | |
at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeConstructor(InvocationWriter.java:577) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitConstructorCallExpression(AsmClassGenerator.java:822) | |
at org.codehaus.groovy.ast.expr.ConstructorCallExpression.visit(ConstructorCallExpression.java:46) | |
at org.codehaus.groovy.classgen.asm.StatementWriter.writeReturn(StatementWriter.java:590) | |
at org.codehaus.groovy.classgen.asm.OptimizingStatementWriter.writeReturn(OptimizingStatementWriter.java:324) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitReturnStatement(AsmClassGenerator.java:620) | |
at org.codehaus.groovy.ast.stmt.ReturnStatement.visit(ReturnStatement.java:49) | |
at org.codehaus.groovy.classgen.asm.StatementWriter.writeBlockStatement(StatementWriter.java:85) | |
at org.codehaus.groovy.classgen.asm.OptimizingStatementWriter.writeBlockStatement(OptimizingStatementWriter.java:159) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitBlockStatement(AsmClassGenerator.java:570) | |
at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:71) | |
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:104) | |
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:115) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitStdMethod(AsmClassGenerator.java:434) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitConstructorOrMethod(AsmClassGenerator.java:387) | |
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:126) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethod(AsmClassGenerator.java:511) | |
at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1081) | |
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:53) | |
at org.codehaus.groovy.classgen.AsmClassGenerator.visitClass(AsmClassGenerator.java:233) | |
at org.codehaus.groovy.control.CompilationUnit$17.call(CompilationUnit.java:825) | |
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1065) | |
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603) | |
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581) | |
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558) | |
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298) | |
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268) | |
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688) | |
at groovy.lang.GroovyShell.parse(GroovyShell.java:700) | |
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:129) | |
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:123) | |
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:517) | |
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:480) | |
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:269) | |
at hudson.model.ResourceController.execute(ResourceController.java:97) | |
at hudson.model.Executor.run(Executor.java:419) | |
1 error | |
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310) | |
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085) | |
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603) | |
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581) | |
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558) | |
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298) | |
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268) | |
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688) | |
at groovy.lang.GroovyShell.parse(GroovyShell.java:700) | |
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:129) | |
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:123) | |
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:517) | |
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:480) | |
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:269) | |
at hudson.model.ResourceController.execute(ResourceController.java:97) | |
at hudson.model.Executor.run(Executor.java:419) | |
Finished: FAILURE |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment