From 3ccb80b836ebec1428c585623a47fc1d46391fc1 Mon Sep 17 00:00:00 2001 From: Jose Luis Rivero Date: Thu, 16 Jul 2020 20:37:42 +0200 Subject: [PATCH] Implement dome view and move nightly to dome (#241) * Implement dome view and move nightly to dome * Debbuild nightlies for dome unreleased branches * Enable master branches CI for dome * Use master branches for nightlies Signed-off-by: Steve Peters Co-authored-by: Steve Peters --- jenkins-scripts/dsl/ignition.dsl | 12 +- jenkins-scripts/dsl/ignition_collection.dsl | 162 +++++++++++++++----- 2 files changed, 137 insertions(+), 37 deletions(-) diff --git a/jenkins-scripts/dsl/ignition.dsl b/jenkins-scripts/dsl/ignition.dsl index e266493ed..bc0f17581 100644 --- a/jenkins-scripts/dsl/ignition.dsl +++ b/jenkins-scripts/dsl/ignition.dsl @@ -49,7 +49,17 @@ ignition_prerelease_branches = [] // DESC: versioned names to generate debbuild jobs for special cases that // don't appear in ignition_branches (like nightly builders or 0-debbuild // jobs for the special cases of foo0 packages) -ignition_debbuild = ignition_software + [ ] +ignition_debbuild = ignition_software + [ 'fuel-tools5', + 'gazebo4', + 'gui4', + 'launch3', + 'math6', + 'msgs6', + 'physics3', + 'rendering4', + 'sensors4', + 'sdformat10', + 'transport9'] // DESC: exclude ignition from generate any install testing job ignition_no_pkg_yet = [ 'rndf' ] // DESC: major versions that has a package in the prerelease repo. Should diff --git a/jenkins-scripts/dsl/ignition_collection.dsl b/jenkins-scripts/dsl/ignition_collection.dsl index cbfb6ce54..8ed1c26a8 100644 --- a/jenkins-scripts/dsl/ignition_collection.dsl +++ b/jenkins-scripts/dsl/ignition_collection.dsl @@ -4,31 +4,30 @@ import javaposse.jobdsl.dsl.Job // IGNITION COLLECTIONS arch = 'amd64' -ignition_nightly = 'blueprint' +ignition_nightly = 'dome' ignition_collections = [ [ name : 'blueprint', - nightly_jobs: [ - 'cmake' : [ debbuild: 'ign-cmake2' , branch: 'ign-cmake2' ], - 'common' : [ debbuild: 'ign-common3' , branch: 'ign-common3' ], - 'fuel-tools': [ debbuild: 'ign-fuel-tools3', branch: 'ign-fuel-tools3' ], - 'gazebo' : [ debbuild: 'ign-gazebo2' , branch: 'ign-gazebo2' ], - 'gui' : [ debbuild: 'ign-gui2' , branch: 'ign-gui2' ], - 'launch' : [ debbuild: 'ign-launch' , branch: 'ign-launch1' ], - 'math' : [ debbuild: 'ign-math6' , branch: 'ign-math6' ], - 'msgs' : [ debbuild: 'ign-msgs4' , branch: 'ign-msgs4' ], - 'physics' : [ debbuild: 'ign-physics' , branch: 'ign-physics1' ], - 'plugin' : [ debbuild: 'ign-plugin' , branch: 'ign-plugin1' ], - 'rendering' : [ debbuild: 'ign-rendering2' , branch: 'ign-rendering2' ], - 'sensors' : [ debbuild: 'ign-sensors2' , branch: 'ign-sensors2' ], - 'sdformat' : [ debbuild: 'sdformat8' , branch: 'sdf8' ], - 'transport' : [ debbuild: 'ign-transport7' , branch: 'ign-transport7' ] - ], distros : [ 'bionic' ], ], [ name : 'citadel', distros : [ 'bionic' ], - ] + ], + [ name : 'dome', + distros : [ 'focal' ], + nightly_jobs: [ + 'fuel-tools': [ debbuild: 'ign-fuel-tools5', branch: 'master '], + 'gazebo' : [ debbuild: 'ign-gazebo4' , branch: 'master' ], + 'gui' : [ debbuild: 'ign-gui4' , branch: 'master' ], + 'launch' : [ debbuild: 'ign-launch3' , branch: 'master' ], + 'msgs' : [ debbuild: 'ign-msgs6' , branch: 'master' ], + 'physics' : [ debbuild: 'ign-physics3' , branch: 'master' ], + 'rendering' : [ debbuild: 'ign-rendering4' , branch: 'master' ], + 'sensors' : [ debbuild: 'ign-sensors4' , branch: 'master' ], + 'sdformat' : [ debbuild: 'sdformat10' , branch: 'sdf10' ], + 'transport' : [ debbuild: 'ign-transport9' , branch: 'master' ], + ], + ], ] ignition_collection_jobs = @@ -189,7 +188,85 @@ ignition_collection_jobs = 'sdformat-ci-sdformat9-homebrew-amd64', 'sdformat-ci-sdformat9-windows7-amd64', 'sdformat-install-sdformat9_pkg-bionic-amd64' - ] + ], + 'dome' : [ + 'ign_gazebo-ci-win', + 'ign_gui-ci-win', + 'ign_physics-ci-win', + 'ign_rendering-ci-win', + 'ign_sensors-ci-win', + //'ignition_dome-ci-default-homebrew-amd64', + //'ignition_dome-install-pkg-bionic-amd64', + //'ignition_dome-install_bottle-homebrew-amd64', + 'ignition_cmake-ci-ign-cmake2-bionic-amd64', + 'ignition_cmake-ci-ign-cmake2-homebrew-amd64', + 'ignition_cmake-ci-ign-cmake2-windows7-amd64', + 'ignition_cmake2-install-pkg-bionic-amd64', + 'ignition_cmake2-install_bottle-homebrew-amd64', + 'ignition_common-ci-ign-common3-bionic-amd64', + 'ignition_common-ci-ign-common3-homebrew-amd64', + 'ignition_common-ci-ign-common3-windows7-amd64', + 'ignition_common3-install-pkg-bionic-amd64', + 'ignition_common3-install_bottle-homebrew-amd64', + 'ignition_fuel-tools-ci-master-bionic-amd64', + 'ignition_fuel-tools-ci-master-homebrew-amd64', + 'ignition_fuel-tools-ci-master-windows7-amd64', + // 'ignition_fuel-tools5-install-pkg-bionic-amd64', + // 'ignition_fuel-tools5-install_bottle-homebrew-amd64', + 'ignition_gazebo-ci-master-bionic-amd64', + 'ignition_gazebo-ci-master-homebrew-amd64', + // 'ignition_gazebo4-install-pkg-bionic-amd64', + // 'ignition_gazebo4-install_bottle-homebrew-amd64', + 'ignition_gui-ci-master-bionic-amd64', + 'ignition_gui-ci-master-homebrew-amd64', + // 'ignition_gui4-install-pkg-bionic-amd64', + // 'ignition_gui4-install_bottle-homebrew-amd64', + 'ignition_launch-ci-master-bionic-amd64', + 'ignition_launch-ci-master-homebrew-amd64', + // 'ignition_launch3-install-pkg-bionic-amd64', + // 'ignition_launch3-install_bottle-homebrew-amd64', + 'ignition_math-ci-ign-math6-bionic-amd64', + 'ignition_math-ci-ign-math6-homebrew-amd64', + 'ignition_math-ci-ign-math6-windows7-amd64', + 'ignition_math6-install-pkg-bionic-amd64', + 'ignition_math6-install_bottle-homebrew-amd64', + 'ignition_msgs-ci-master-bionic-amd64', + 'ignition_msgs-ci-master-homebrew-amd64', + 'ignition_msgs-ci-master-windows7-amd64', + // 'ignition_msgs6-install-pkg-bionic-amd64', + // 'ignition_msgs6-install_bottle-homebrew-amd64', + 'ignition_physics-ci-master-bionic-amd64', + 'ignition_physics-ci-master-homebrew-amd64', + // 'ignition_physics3-install-pkg-bionic-amd64', + // 'ignition_physics3-install_bottle-homebrew-amd64', + 'ignition_plugin-ci-ign-plugin1-bionic-amd64', + 'ignition_plugin-ci-ign-plugin1-homebrew-amd64', + 'ignition_plugin-ci-ign-plugin1-windows7-amd64', + 'ignition_plugin-install-pkg-bionic-amd64', + 'ignition_plugin1-install_bottle-homebrew-amd64', + 'ignition_rendering-ci-master-bionic-amd64', + 'ignition_rendering-ci-master-homebrew-amd64', + // 'ignition_rendering4-install-pkg-bionic-amd64', + // 'ignition_rendering4-install_bottle-homebrew-amd64', + 'ignition_sensors-ci-master-bionic-amd64', + 'ignition_sensors-ci-master-homebrew-amd64', + // 'ignition_sensors4-install-pkg-bionic-amd64', + // 'ignition_sensors4-install_bottle-homebrew-amd64', + 'ignition_tools-ci-ign-tools1-bionic-amd64', + 'ignition_tools-ci-ign-tools1-homebrew-amd64', + 'ignition_tools-ci-ign-tools1-windows7-amd64', + 'ignition_tools-install-pkg-bionic-amd64', + // 'ignition_tools1-install_bottle-homebrew-amd64', + 'ignition_transport-ci-master-bionic-amd64', + 'ignition_transport-ci-master-homebrew-amd64', + 'ignition_transport-ci-master-windows7-amd64', + // 'ignition_transport9-install-pkg-bionic-amd64', + // 'ignition_transport9-install_bottle-homebrew-amd64', + 'sdformat-ci-sdformat10-bionic-amd64', + 'sdformat-ci-sdformat10-homebrew-amd64', + 'sdformat-ci-sdformat10-windows7-amd64', + // 'sdformat-install-sdformat10_pkg-bionic-amd64' + ], ] @@ -351,10 +428,20 @@ ignition_collections.each { ign_collection -> } // NIGHTLY GENERATION +def get_nightly_branch(collection_data, ign_package) +{ + try { + if (collection_data.get(ign_package)) + return collection_data.get(ign_package).get('branch') + } catch(Exception e) { + return 'not_enabled_in_DSL' + } + return 'not_enabled_in_DSL' +} + collection_data = [] list_of_pkgs = "" - collection_data = ignition_collections.find { it.get('name') == ignition_nightly } collection_data = collection_data.get('nightly_jobs') @@ -383,20 +470,20 @@ nightly_scheduler_job.with cron('0 9 * * *') } - cmake_branch = collection_data.get('cmake').get('branch') - common_branch = collection_data.get('common').get('branch') - fuel_tools_branch = collection_data.get('fuel-tools').get('branch') - gazebo_branch = collection_data.get('gazebo').get('branch') - gui_branch = collection_data.get('gui').get('branch') - launch_branch = collection_data.get('launch').get('branch') - math_branch = collection_data.get('math').get('branch') - msgs_branch = collection_data.get('msgs').get('branch') - physics_branch = collection_data.get('physics').get('branch') - plugin_branch = collection_data.get('plugin').get('branch') - rendering_branch = collection_data.get('rendering').get('branch') - sensors_branch = collection_data.get('sensors').get('branch') - sdformat_branch = collection_data.get('sdformat').get('branch') - transport_branch = collection_data.get('transport').get('branch') + cmake_branch = get_nightly_branch(collection_data, 'cmake') + common_branch = get_nightly_branch(collection_data, 'common') + fuel_tools_branch = get_nightly_branch(collection_data, 'fuel-tools') + gazebo_branch = get_nightly_branch(collection_data, 'gazebo') + gui_branch = get_nightly_branch(collection_data, 'gui') + launch_branch = get_nightly_branch(collection_data, 'launch') + math_branch = get_nightly_branch(collection_data, 'math') + msgs_branch = get_nightly_branch(collection_data, 'msgs') + physics_branch = get_nightly_branch(collection_data, 'physics') + plugin_branch = get_nightly_branch(collection_data, 'plugin') + rendering_branch = get_nightly_branch(collection_data, 'rendering') + sensors_branch = get_nightly_branch(collection_data, 'sensors') + sdformat_branch = get_nightly_branch(collection_data, 'sdformat') + transport_branch = get_nightly_branch(collection_data, 'transport') steps { shell("""\ @@ -412,8 +499,11 @@ nightly_scheduler_job.with # redirect to not display the password for n in \${NIGHTLY_PACKAGES}; do - # remove 0 or 1 trailing versions - n=\${n%[0-1]} + # remove 0 or 1 trailing versions. Use echo + sed to avoid scaping + # problems with <<< + if [[ \$(echo \$n | sed -r 's:[a-z]*[A-Z]*([0-9]*):\\1:g') -lt 2 ]]; then + n=\${n%[0-1]} + fi if [[ "\${n}" == "\${n/ign/ignition}" ]]; then alias=\${n}