diff --git a/jenkins-scripts/docker/gz-source-generation.bash b/jenkins-scripts/docker/gz-source-generation.bash index a56709217..85f7600b6 100644 --- a/jenkins-scripts/docker/gz-source-generation.bash +++ b/jenkins-scripts/docker/gz-source-generation.bash @@ -29,7 +29,7 @@ cmake .. -DPACKAGE_SOURCE_ONLY:BOOL=ON make package_source rm -fr \$PKG_DIR && mkdir \$PKG_DIR -find \${BUILD_DIR} -maxdepth 1 -name '*${VERSION}.tar.*' -exec mv {} \${PKG_DIR} \\; +find \${BUILD_DIR} -maxdepth 1 -name '*-${VERSION}.tar.*' -exec mv {} \${PKG_DIR} \\; if [ $(ls 2>/dev/null -Ubad1 -- "\${PKG_DIR}" | wc -l) -gt 1 ]; then echo "Found more than one file inside pkgs directory:" diff --git a/jenkins-scripts/dsl/_configs_/Globals.groovy b/jenkins-scripts/dsl/_configs_/Globals.groovy index d0e2ee9ca..81834d9c7 100644 --- a/jenkins-scripts/dsl/_configs_/Globals.groovy +++ b/jenkins-scripts/dsl/_configs_/Globals.groovy @@ -15,9 +15,7 @@ class Globals static CRON_ON_WEEKEND = 'H H * * 6-7' // Run nightly scheduler every 20 minutes being sure to // run it at 9 just before the nightly creation. - static CRON_NIGHTLY_NODES = [ - '*/20 9-23 * * *', - '*/20 0-8 * * *'] + static CRON_NIGHTLY_NODES = '*/20 9-23 * * * \n20 0-8 * * *' // Start the nightly generation 10 minutes after the nigthly node // initial generation @@ -29,16 +27,12 @@ class Globals static gpu_by_distro = [ bionic : [ 'nvidia' ]] - static ros_ci = [ 'melodic' : ['bionic'] , - 'noetic' : ['focal'] , - 'foxy' : ['focal'] , - 'rolling' : ['jammy']] + static ros_ci = [ 'noetic' : ['focal'] , + 'foxy' : ['focal']] // This should be in sync with archive_library - static gz_version_by_rosdistro = [ 'melodic' : ['9'] , - 'noetic' : ['11'] , - 'foxy' : ['11'] , - 'rolling' : ['11']] + static gz_version_by_rosdistro = [ 'noetic' : ['11'] , + 'foxy' : ['11']] static String ign2gz(String str) { str = str.replaceAll("ignitionrobotics","gazebosim") @@ -121,15 +115,6 @@ class Globals return [ 'melodic', 'noetic' ] } - static ArrayList get_ros2_suported_distros() - { - return [ 'foxy', 'rolling' ] - } - - static String get_ros2_development_distro() { - return 'rolling' - } - static String nontest_label(String original_label) { return "(${original_label}) && !test-instance" } diff --git a/jenkins-scripts/dsl/_configs_/OSRFSourceCreation.groovy b/jenkins-scripts/dsl/_configs_/OSRFSourceCreation.groovy index ecd3f94c3..4020a006f 100644 --- a/jenkins-scripts/dsl/_configs_/OSRFSourceCreation.groovy +++ b/jenkins-scripts/dsl/_configs_/OSRFSourceCreation.groovy @@ -104,8 +104,17 @@ class OSRFSourceCreation -name ${canonical_package_name}-\${VERSION}.tar.* \ -printf "%f\\n") if [[ -z \${tarball} ]] || [[ \$(wc -w <<< \${tarball}) != 1 ]]; then - echo "Tarball name extraction returned \${tarball} which is not a one word string" - exit 1 + # There is one use case that can be valid but failed to find canonical_package_name + # which are package using _ (underscores) in their name like gz-fuel_tools. Workaround + # is to just search for the VERSION (not so safety but should work) + tarball=\$(find \${WORKSPACE}/${pkg_sources_dir} \ + -type f \ + -name *-\${VERSION}.tar.* \ + -printf "%f\\n") + if [[ -z \${tarball} ]] || [[ \$(wc -w <<< \${tarball}) != 1 ]]; then + echo "Tarball name extraction returned \${tarball} which is not a one word string" + exit 1 + fi fi echo "S3_FILES_TO_UPLOAD=\${tarball}" >> ${properties_file} diff --git a/jenkins-scripts/dsl/core.dsl b/jenkins-scripts/dsl/core.dsl index 0e8234b16..4976a3835 100644 --- a/jenkins-scripts/dsl/core.dsl +++ b/jenkins-scripts/dsl/core.dsl @@ -106,9 +106,7 @@ nightly_labeler.with label Globals.nontest_label("master") triggers { - Globals.CRON_NIGHTLY_NODES.each { cron_entry -> - cron(cron_entry) - } + cron(Globals.CRON_NIGHTLY_NODES) } steps diff --git a/jenkins-scripts/dsl/gazebo_libs.dsl b/jenkins-scripts/dsl/gazebo_libs.dsl index 0062a8c7b..af5097a43 100644 --- a/jenkins-scripts/dsl/gazebo_libs.dsl +++ b/jenkins-scripts/dsl/gazebo_libs.dsl @@ -335,101 +335,85 @@ ciconf_per_lib_index.each { lib_name, lib_configs -> def gz_job_name_prefix = lib_name.replaceAll('-','_') def distro = ci_config.system.version def arch = ci_config.system.arch + def categories_enabled = ci_config.ci_categories_enabled def ws_checkout_dir = lib_name if (ci_config.exclude.all?.contains(lib_name)) return assert(lib_name) assert(branch_names) assert(ci_config) + assert(categories_enabled) // CI branch jobs (-ci-$branch-) (pulling check every 5 minutes) branches_with_collections.each { branch_and_collection -> def gz_ci_job branch_name = branch_and_collection.branch - if (ci_config.system.so == 'linux') { - gz_ci_job = job("${gz_job_name_prefix}-ci-${branch_name}-${distro}-${arch}") - generate_ci_job(gz_ci_job, lib_name, branch_name, ci_config) - // Generate asan jobs on Linux - def gz_ci_asan_job = job("${gz_job_name_prefix}-ci_asan-${branch_name}-${distro}-${arch}") - generate_asan_ci_job(gz_ci_asan_job, lib_name, branch_name, ci_config) - gz_ci_asan_job.with + if (categories_enabled.contains('stable_branches')) + { + if (ci_config.system.so == 'linux') { + gz_ci_job = job("${gz_job_name_prefix}-ci-${branch_name}-${distro}-${arch}") + generate_ci_job(gz_ci_job, lib_name, branch_name, ci_config) + if (categories_enabled.contains('stable_branches_asan')) + { + // Generate asan jobs on Linux + def gz_ci_asan_job = job("${gz_job_name_prefix}-ci_asan-${branch_name}-${distro}-${arch}") + generate_asan_ci_job(gz_ci_asan_job, lib_name, branch_name, ci_config) + gz_ci_asan_job.with + { + triggers { + scm(Globals.CRON_ON_WEEKEND) + } + } + logging_list['asan_ci'].add( + [collection: branch_and_collection.collection, + job_name: gz_ci_asan_job.name]) + } + } else if (ci_config.system.so == 'darwin') { + gz_ci_job = job("${gz_job_name_prefix}-ci-${branch_name}-homebrew-${arch}") + generate_brew_ci_job(gz_ci_job, lib_name, branch_name, ci_config) + } else if (ci_config.system.so == 'windows') { + branch_number = branch_name - lib_name + Globals.gazebodistro_branch = true + gz_ci_job = job("${gz_job_name_prefix}-${branch_number}-win") + generate_win_ci_job(gz_ci_job, lib_name, branch_name, ci_config) + Globals.gazebodistro_branch = false + } else { + assert false : "Unexpected config.system.so type: ${ci_config.system.so}" + } + + gz_ci_job.with { triggers { - scm(Globals.CRON_ON_WEEKEND) + scm('@daily') } } - logging_list['asan_ci'].add( - [collection: branch_and_collection.collection, - job_name: gz_ci_asan_job.name]) - } else if (ci_config.system.so == 'darwin') { - gz_ci_job = job("${gz_job_name_prefix}-ci-${branch_name}-homebrew-${arch}") - generate_brew_ci_job(gz_ci_job, lib_name, branch_name, ci_config) - } else if (ci_config.system.so == 'windows') { - branch_number = branch_name - lib_name - Globals.gazebodistro_branch = true - gz_ci_job = job("${gz_job_name_prefix}-${branch_number}-win") - generate_win_ci_job(gz_ci_job, lib_name, branch_name, ci_config) - Globals.gazebodistro_branch = false - } else { - assert false : "Unexpected config.system.so type: ${ci_config.system.so}" - } - gz_ci_job.with - { - triggers { - scm('@daily') - } - } - - logging_list['branch_ci'].add( - [collection: branch_and_collection.collection, - job_name: gz_ci_job.name]) + logging_list['branch_ci'].add( + [collection: branch_and_collection.collection, + job_name: gz_ci_job.name]) + } // end of daily category enabled } // end_of_branch - if (ci_config.system.so == 'linux') { - def pre_setup_script = ci_config.pre_setup_script_hook?.get(lib_name)?.join('\n') - def extra_cmd = pre_setup_script ?: "" - - def gz_ci_job_name = "${gz_job_name_prefix}-ci-pr_any-${distro}-${arch}" - def gz_ci_any_job = job(gz_ci_job_name) - OSRFLinuxCompilationAnyGitHub.create(gz_ci_any_job, - "gazebosim/${lib_name}", - is_testing_enabled(lib_name, ci_config), - ENABLE_CPPCHECK, - branch_names) - generate_label_by_requirements(gz_ci_any_job, lib_name, ci_config.requirements) - gz_ci_any_job.with + if (categories_enabled.contains('pr')) + { + if (ci_config.system.so == 'linux') { - steps + def pre_setup_script = ci_config.pre_setup_script_hook?.get(lib_name)?.join('\n') + def extra_cmd = pre_setup_script ?: "" + + def gz_ci_job_name = "${gz_job_name_prefix}-ci-pr_any-${distro}-${arch}" + def gz_ci_any_job = job(gz_ci_job_name) + OSRFLinuxCompilationAnyGitHub.create(gz_ci_any_job, + "gazebosim/${lib_name}", + is_testing_enabled(lib_name, ci_config), + ENABLE_CPPCHECK, + branch_names) + generate_label_by_requirements(gz_ci_any_job, lib_name, ci_config.requirements) + gz_ci_any_job.with { - shell("""\ - #!/bin/bash -xe - - export DISTRO=${distro} - - ${GLOBAL_SHELL_CMD} - ${extra_cmd} - - export BUILDING_SOFTWARE_DIRECTORY=${lib_name} - export ARCH=${arch} - /bin/bash -xe ./scripts/jenkins-scripts/docker/${script_name_prefix}-compilation.bash - """.stripIndent()) - } // end of steps - } // end of ci_any_job - - if (! ci_config.exclude.abichecker?.contains(lib_name)) { - // ABI branch jobs (-ci-abichecker-) for non main branches - def abi_job_name = "${gz_job_name_prefix}-abichecker-any_to_any-ubuntu-${distro}-${arch}" - def abi_job = job(abi_job_name) - OSRFLinuxABIGitHub.create(abi_job) - GenericAnyJobGitHub.create(abi_job, - "gazebosim/${lib_name}", - branch_names - [ 'main']) - generate_label_by_requirements(abi_job, lib_name, ci_config.requirements) - abi_job.with - { - steps { - shell("""\ + steps + { + shell("""\ #!/bin/bash -xe export DISTRO=${distro} @@ -437,41 +421,71 @@ ciconf_per_lib_index.each { lib_name, lib_configs -> ${GLOBAL_SHELL_CMD} ${extra_cmd} + export BUILDING_SOFTWARE_DIRECTORY=${lib_name} export ARCH=${arch} - export DEST_BRANCH=\${DEST_BRANCH:-\$ghprbTargetBranch} - export SRC_BRANCH=\${SRC_BRANCH:-\$ghprbSourceBranch} - export SRC_REPO=\${SRC_REPO:-\$ghprbAuthorRepoGitUrl} - export ABI_JOB_SOFTWARE_NAME=${lib_name} - /bin/bash -xe ./scripts/jenkins-scripts/docker/gz-abichecker.bash + /bin/bash -xe ./scripts/jenkins-scripts/docker/${script_name_prefix}-compilation.bash """.stripIndent()) } // end of steps - } // end of with + } // end of ci_any_job + + if (categories_enabled.contains('stable_branches') && \ + (! ci_config.exclude.abichecker?.contains(lib_name))) + { + // ABI branch jobs (-ci-abichecker-) for non main branches + def abi_job_name = "${gz_job_name_prefix}-abichecker-any_to_any-ubuntu-${distro}-${arch}" + def abi_job = job(abi_job_name) + OSRFLinuxABIGitHub.create(abi_job) + GenericAnyJobGitHub.create(abi_job, + "gazebosim/${lib_name}", + branch_names - [ 'main']) + generate_label_by_requirements(abi_job, lib_name, ci_config.requirements) + abi_job.with + { + steps { + shell("""\ + #!/bin/bash -xe + + export DISTRO=${distro} + + ${GLOBAL_SHELL_CMD} + ${extra_cmd} + + export ARCH=${arch} + export DEST_BRANCH=\${DEST_BRANCH:-\$ghprbTargetBranch} + export SRC_BRANCH=\${SRC_BRANCH:-\$ghprbSourceBranch} + export SRC_REPO=\${SRC_REPO:-\$ghprbAuthorRepoGitUrl} + export ABI_JOB_SOFTWARE_NAME=${lib_name} + /bin/bash -xe ./scripts/jenkins-scripts/docker/gz-abichecker.bash + """.stripIndent()) + } // end of steps + } // end of with + } + } else if (ci_config.system.so == 'darwin') { + // -------------------------------------------------------------- + def gz_brew_ci_any_job_name = "${gz_job_name_prefix}-ci-pr_any-homebrew-amd64" + def gz_brew_ci_any_job = job(gz_brew_ci_any_job_name) + OSRFBrewCompilationAnyGitHub.create(gz_brew_ci_any_job, + "gazebosim/${lib_name}", + is_testing_enabled(lib_name, ci_config), + branch_names, + ENABLE_GITHUB_PR_INTEGRATION, + are_cmake_warnings_enabled(lib_name, ci_config)) + add_brew_shell_build_step(gz_brew_ci_any_job, lib_name, ws_checkout_dir) + } else if (ci_config.system.so == 'windows') { + def gz_win_ci_any_job_name = "${gz_job_name_prefix}-pr-win" + def gz_win_ci_any_job = job(gz_win_ci_any_job_name) + Globals.gazebodistro_branch = true + OSRFWinCompilationAnyGitHub.create(gz_win_ci_any_job, + "gazebosim/${lib_name}", + is_testing_enabled(lib_name, ci_config), + branch_names, + ENABLE_GITHUB_PR_INTEGRATION, + are_cmake_warnings_enabled(lib_name, ci_config)) + add_win_devel_bat_call(gz_win_ci_any_job, lib_name, ws_checkout_dir) + Globals.gazebodistro_branch = false } - } else if (ci_config.system.so == 'darwin') { - // -------------------------------------------------------------- - def gz_brew_ci_any_job_name = "${gz_job_name_prefix}-ci-pr_any-homebrew-amd64" - def gz_brew_ci_any_job = job(gz_brew_ci_any_job_name) - OSRFBrewCompilationAnyGitHub.create(gz_brew_ci_any_job, - "gazebosim/${lib_name}", - is_testing_enabled(lib_name, ci_config), - branch_names, - ENABLE_GITHUB_PR_INTEGRATION, - are_cmake_warnings_enabled(lib_name, ci_config)) - add_brew_shell_build_step(gz_brew_ci_any_job, lib_name, ws_checkout_dir) - } else if (ci_config.system.so == 'windows') { - def gz_win_ci_any_job_name = "${gz_job_name_prefix}-pr-win" - def gz_win_ci_any_job = job(gz_win_ci_any_job_name) - Globals.gazebodistro_branch = true - OSRFWinCompilationAnyGitHub.create(gz_win_ci_any_job, - "gazebosim/${lib_name}", - is_testing_enabled(lib_name, ci_config), - branch_names, - ENABLE_GITHUB_PR_INTEGRATION, - are_cmake_warnings_enabled(lib_name, ci_config)) - add_win_devel_bat_call(gz_win_ci_any_job, lib_name, ws_checkout_dir) - Globals.gazebodistro_branch = false - } - } //en of lib_configs + } //end of pr enabled + } //end of lib_configs } // end of lib pkgconf_per_src_index.each { pkg_src, pkg_src_configs -> diff --git a/jenkins-scripts/dsl/gazebo_ros_pkgs.dsl b/jenkins-scripts/dsl/gazebo_ros_pkgs.dsl index ac94c6d03..0d795f954 100644 --- a/jenkins-scripts/dsl/gazebo_ros_pkgs.dsl +++ b/jenkins-scripts/dsl/gazebo_ros_pkgs.dsl @@ -7,9 +7,7 @@ ArrayList ros_distros = Globals.get_ros_suported_distros() @Field String ci_arch = 'amd64' @Field -String current_ros2_branch = Globals.get_ros2_development_distro() -@Field -ArrayList ros2_distros = Globals.get_ros2_suported_distros() +ArrayList ros2_distros = [ 'foxy' ] @Field Boolean ENABLE_TESTS = true @@ -23,19 +21,11 @@ bloom_debbuild_jobs = [ 'gazebo-dev', 'gazebo-msgs', 'gazebo-plugins', 'gazebo-r // ROS1 branches use $ros_distro-devel schema // ROS2 branches use $ros_distro with the expections: -// - rolling -> ros2 -// - branch under development -> ros2 String get_branch_from_rosdistro(ros_distro) { if (! ros2_distros.contains(ros_distro)) return "${ros_distro}-devel" - switch(ros_distro) { - case 'rolling': - case current_ros2_branch: - return 'ros2' - default: - return ros_distro - } + return ros_distro } Job create_pr_compilation(String job_name, @@ -165,101 +155,98 @@ void include_common_params(Job gazebo_ros_pkgs_job, "default", "gazebo_ros_pkgs-compilation") - if (ros_distro != current_ros2_branch) + // -------------------------------------------------------------- + // 3. Create the default install (by default use ros-shadow) + def install_default_job = job("${name_prefix}_gazebo_pkgs-install_pkg_${suffix_triplet}") + OSRFLinuxInstall.create(install_default_job) + include_common_params(install_default_job, + ubuntu_distro, + ros_distro, + "default", + "gazebo_ros_pkgs-release-testing") + install_default_job.with { - // -------------------------------------------------------------- - // 3. Create the default install (by default use ros-shadow) - def install_default_job = job("${name_prefix}_gazebo_pkgs-install_pkg_${suffix_triplet}") - OSRFLinuxInstall.create(install_default_job) - include_common_params(install_default_job, - ubuntu_distro, - ros_distro, - "default", - "gazebo_ros_pkgs-release-testing") - install_default_job.with - { - triggers { - cron(Globals.CRON_EVERY_THREE_DAYS) - } + triggers { + cron(Globals.CRON_EVERY_THREE_DAYS) } + } - // -------------------------------------------------------------- - // 3. Create the default install using stable ROS repo - def install_stable_default_job = job("${name_prefix}_gazebo_pkgs-install_pkg_stable_ros_${suffix_triplet}") - OSRFLinuxInstall.create(install_stable_default_job) - include_common_params(install_stable_default_job, - ubuntu_distro, - ros_distro, - "default", - "gazebo_ros_pkgs-release-testing", - "ros") - install_stable_default_job.with - { - triggers { - cron(Globals.CRON_EVERY_THREE_DAYS) - } + // -------------------------------------------------------------- + // 3. Create the default install using stable ROS repo + def install_stable_default_job = job("${name_prefix}_gazebo_pkgs-install_pkg_stable_ros_${suffix_triplet}") + OSRFLinuxInstall.create(install_stable_default_job) + include_common_params(install_stable_default_job, + ubuntu_distro, + ros_distro, + "default", + "gazebo_ros_pkgs-release-testing", + "ros") + install_stable_default_job.with + { + triggers { + cron(Globals.CRON_EVERY_THREE_DAYS) } + } - // Assume that gazebo means official version chose by ROS on every distribution - gazebo_unofficial_versions = extra_gazebo_versions[ros_distro] - gazebo_unofficial_versions.each { gz_version -> - // Do not generate special jobs for official supported package. They will - // be created using plain 'gazebo' name. - if (! (gz_version in Globals.gz_version_by_rosdistro[ros_distro])) + // Assume that gazebo means official version chose by ROS on every distribution + gazebo_unofficial_versions = extra_gazebo_versions[ros_distro] + gazebo_unofficial_versions.each { gz_version -> + // Do not generate special jobs for official supported package. They will + // be created using plain 'gazebo' name. + if (! (gz_version in Globals.gz_version_by_rosdistro[ros_distro])) + { + // -------------------------------------------------------------- + // 1.2 Testing packages jobs install_pkg + def install_alternative_job = job("${name_prefix}_gazebo${gz_version}_pkgs-install_pkg_${suffix_triplet}") + OSRFLinuxInstall.create(install_alternative_job) + include_common_params(install_alternative_job, + ubuntu_distro, + ros_distro, + gz_version, + "gazebo_ros_pkgs-release-testing") + install_alternative_job.with { - // -------------------------------------------------------------- - // 1.2 Testing packages jobs install_pkg - def install_alternative_job = job("${name_prefix}_gazebo${gz_version}_pkgs-install_pkg_${suffix_triplet}") - OSRFLinuxInstall.create(install_alternative_job) - include_common_params(install_alternative_job, - ubuntu_distro, - ros_distro, - gz_version, - "gazebo_ros_pkgs-release-testing") - install_alternative_job.with - { - triggers { - cron(Globals.CRON_EVERY_THREE_DAYS) - } + triggers { + cron(Globals.CRON_EVERY_THREE_DAYS) } - - // -------------------------------------------------------------- - // 2.2 Extra ci pr-any jobs - def ci_pr_job_name = "${name_prefix}_gazebo${gz_version}_pkgs-ci-pr_any_${suffix_triplet}" - Job ci_pr_job = create_pr_compilation(ci_pr_job_name, - ubuntu_distro, - ros_distro, - gz_version, - "gazebo_ros_pkgs-compilation") - - // -------------------------------------------------------------- - // 3.2 Extra default ci jobs - def extra_ci_job_name = "${name_prefix}_gazebo${gz_version}_pkgs-ci-default_$suffix_triplet" - Job extra_ci_job = create_ci_compilation(extra_ci_job_name, - ubuntu_distro, - ros_distro, - gz_version, - "gazebo_ros_pkgs-compilation") } - } // end of gazebo_versions - // Regresssion jobs only in ROS1 by now - if (ros_distros.contains(ros_distro)) { // -------------------------------------------------------------- - // 2. Create the regressions ci pr-any jobs - def regression_job_name = "${name_prefix}_gazebo_pkgs-ci-pr_regression_any_${suffix_triplet}" - Job regression_job = create_pr_compilation(regression_job_name, - ubuntu_distro, - ros_distro, - "default", - "gazebo_ros_pkgs-compilation_regression") - // No melodic-devel branch in third party testing (yet) - if (ros_distro == 'melodic' || ros_distro == 'noetic') + // 2.2 Extra ci pr-any jobs + def ci_pr_job_name = "${name_prefix}_gazebo${gz_version}_pkgs-ci-pr_any_${suffix_triplet}" + Job ci_pr_job = create_pr_compilation(ci_pr_job_name, + ubuntu_distro, + ros_distro, + gz_version, + "gazebo_ros_pkgs-compilation") + + // -------------------------------------------------------------- + // 3.2 Extra default ci jobs + def extra_ci_job_name = "${name_prefix}_gazebo${gz_version}_pkgs-ci-default_$suffix_triplet" + Job extra_ci_job = create_ci_compilation(extra_ci_job_name, + ubuntu_distro, + ros_distro, + gz_version, + "gazebo_ros_pkgs-compilation") + } + } // end of gazebo_versions + + // Regresssion jobs only in ROS1 by now + if (ros_distros.contains(ros_distro)) { + // -------------------------------------------------------------- + // 2. Create the regressions ci pr-any jobs + def regression_job_name = "${name_prefix}_gazebo_pkgs-ci-pr_regression_any_${suffix_triplet}" + Job regression_job = create_pr_compilation(regression_job_name, + ubuntu_distro, + ros_distro, + "default", + "gazebo_ros_pkgs-compilation_regression") + // No melodic-devel branch in third party testing (yet) + if (ros_distro == 'melodic' || ros_distro == 'noetic') + { + regression_job.with { - regression_job.with - { - disabled() - } + disabled() } } } // end of non development diff --git a/jenkins-scripts/dsl/gz-collections.yaml b/jenkins-scripts/dsl/gz-collections.yaml index d548bee9b..3dc9dc5fc 100644 --- a/jenkins-scripts/dsl/gz-collections.yaml +++ b/jenkins-scripts/dsl/gz-collections.yaml @@ -467,6 +467,11 @@ ci_configs: gz-physics: - "export MAKE_JOBS=1" tests_disabled: + ci_categories_enabled: + - pr + - pr_abichecker + - stable_branches + - stable_branches_asan - name: jammy system: so: linux @@ -492,6 +497,11 @@ ci_configs: gz-physics: - "export MAKE_JOBS=1" tests_disabled: + ci_categories_enabled: + - pr + - pr_abichecker + - stable_branches + - stable_branches_asan - name: brew system: so: darwin @@ -523,6 +533,9 @@ ci_configs: - gz-transport - gz-utils - sdformat + ci_categories_enabled: + - pr + - stable_branches - name: win system: so: windows @@ -553,6 +566,9 @@ ci_configs: - gz-transport - gz-utils - sdformat + ci_categories_enabled: + - pr + - stable_branches # No gz-sim and gz-launch on Citadel - name: win_citadel system: @@ -580,6 +596,9 @@ ci_configs: - gz-transport - gz-utils - sdformat + ci_categories_enabled: + - pr + - stable_branches packaging_configs: - name: focal system: diff --git a/jenkins-scripts/lib/project-default-devel-homebrew-amd64.bash b/jenkins-scripts/lib/project-default-devel-homebrew-amd64.bash index 0e01b32bc..91817a4d2 100644 --- a/jenkins-scripts/lib/project-default-devel-homebrew-amd64.bash +++ b/jenkins-scripts/lib/project-default-devel-homebrew-amd64.bash @@ -78,6 +78,9 @@ brew install $(brew deps --1 --include-build ${PROJECT_FORMULA}) # pytest is needed to run python tests with junit xml output PIP_PACKAGES_NEEDED="${PIP_PACKAGES_NEEDED} pytest" +# Add protobuf since the homebrew protobuf bottle dropped support for python bindings +PIP_PACKAGES_NEEDED="${PIP_PACKAGES_NEEDED} protobuf" + if [[ "${RERUN_FAILED_TESTS}" -gt 0 ]]; then # Install lxml for flaky_junit_merge.py PIP_PACKAGES_NEEDED="${PIP_PACKAGES_NEEDED} lxml"