Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the install_bottle jobs using gazebo_libs #1096

Merged
merged 9 commits into from
Dec 15, 2023
10 changes: 10 additions & 0 deletions .github/workflows/ci.yaml → .github/workflows/ci-dsl.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,16 @@ jobs:
WRITE_JOB_LOG=1 java -jar tools/jobdsl.jar *.dsl
find logs/* -exec sort {} -o {} \;
popd
- name: Checks for DSL Code
run: |
cd jenkins-scripts/dsl
./dsl_checks.bash
- name: Export XML generated configuration for diff
run: |
cd jenkins-scripts/dsl
# export files for later diff
mkdir /tmp/pr_xml_configuration
mv *.xml /tmp/pr_xml_configuration/
- name: Update and commit logs generated
uses: stefanzweifel/git-auto-commit-action@8756aa072ef5b4a080af5dc8fef36c5d586e521d # v5 sha
with:
Expand Down
55 changes: 50 additions & 5 deletions jenkins-scripts/dsl/gazebo_libs.dsl
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ ENABLE_GITHUB_PR_INTEGRATION = true

def WRITE_JOB_LOG = System.getenv('WRITE_JOB_LOG') ?: false
logging_list = [:].withDefault {[]}
logging_list['branch_ci'] = []
logging_list['asan_ci'] = []

// Jenkins needs the relative path to work and locally the simulation is done
// using a symlink
Expand Down Expand Up @@ -247,6 +245,42 @@ String generate_linux_install(src_name, lib_name, platform, arch)
return job_name
}

String generate_brew_install(src_name, lib_name, arch)
{
def script_name_prefix = cleanup_library_name(src_name)
def job_name = "${script_name_prefix}-install_bottle-homebrew-${arch}"
def install_default_job = job(job_name)
OSRFBrewInstall.create(install_default_job)

install_default_job.with
{
triggers {
cron('@daily')
}

steps {
shell("""\
#!/bin/bash -xe

/bin/bash -x ./scripts/jenkins-scripts/lib/project-install-homebrew.bash ${src_name}
""".stripIndent())
}

publishers
{
configure { project ->
project / publishers << 'hudson.plugins.logparser.LogParserPublisher' {
unstableOnWarning true
failBuildOnError false
parsingRulesPath('/var/lib/jenkins/logparser_warn_on_mark_unstable')
}
}
}
}

return job_name
}

def ciconf_per_lib_index = [:].withDefault { [:] }
def pkgconf_per_src_index = [:].withDefault { [:] }
generate_ciconfigs_by_lib(gz_collections_yaml, ciconf_per_lib_index, pkgconf_per_src_index)
Expand Down Expand Up @@ -420,12 +454,23 @@ pkgconf_per_src_index.each { pkg_src, pkg_src_configs ->
'_releasepy')
// --------------------------------------------------------------
pkg_system.arch.each { arch ->
def job_name = generate_linux_install(
pkg_src, canonical_lib_name, pkg_system.version, arch)
def linux_install_job_name = generate_linux_install(
pkg_src,
canonical_lib_name,
pkg_system.version,
arch)
def brew_install_job_name = generate_brew_install(
pkg_src,
canonical_lib_name,
arch)

pkg_src_config.getValue().each { index_entry ->
logging_list['install_ci'].add(
[collection: index_entry.collection,
job_name: job_name])
job_name: linux_install_job_name])
logging_list['install_ci'].add(
[collection: index_entry.collection,
job_name: brew_install_job_name])
}
}
}
Expand Down
48 changes: 0 additions & 48 deletions jenkins-scripts/dsl/ignition.dsl
Original file line number Diff line number Diff line change
Expand Up @@ -427,54 +427,6 @@ all_debbuilders().each { debbuilder_name ->
}
}

// --------------------------------------------------------------
// BREW: CI jobs

// 1. any job
gz_software.each { gz_sw ->
// Install jobs to test bottles
supported_install_pkg_branches(gz_sw).each { major_version, supported_distros ->
def install_default_job = job("ignition_${gz_sw}${major_version}-install_bottle-homebrew-amd64")
OSRFBrewInstall.create(install_default_job)

install_default_job.with
{
// disable some bottles
if (("${gz_sw}" == "gui" && "${major_version}" == "0"))
disabled()

triggers {
cron('@daily')
}

def bottle_name = "ignition-${gz_sw}${major_version}"
// For transiting, use always gz-sim new name since new versions won't
// have ign-gazebo aliases
if ("${gz_sw}" == "sim" || "${gz_sw}" == "gazebo")
bottle_name = "gz-sim${major_version}"

steps {
shell("""\
#!/bin/bash -xe

/bin/bash -x ./scripts/jenkins-scripts/lib/project-install-homebrew.bash ${bottle_name}
""".stripIndent())
}

publishers
{
configure { project ->
project / publishers << 'hudson.plugins.logparser.LogParserPublisher' {
unstableOnWarning true
failBuildOnError false
parsingRulesPath('/var/lib/jenkins/logparser_warn_on_mark_unstable')
}
}
}
}
}
}

// --------------------------------------------------------------
// WINDOWS: CI job

Expand Down
84 changes: 84 additions & 0 deletions jenkins-scripts/dsl/logs/generated_jobs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -317,89 +317,173 @@ branch_ci ionic sdformat-ci-main-homebrew-amd64
branch_ci ionic sdformat-ci-main-jammy-amd64
branch_ci ionic sdformat-main-win
install_ci __upcoming__ gz_tools3-install-pkg-jammy-amd64
install_ci __upcoming__ gz_tools3-install_bottle-homebrew-amd64
install_ci citadel gz_citadel-install-pkg-focal-amd64
install_ci citadel gz_citadel-install_bottle-homebrew-amd64
install_ci citadel gz_cmake2-install-pkg-focal-amd64
install_ci citadel gz_cmake2-install_bottle-homebrew-amd64
install_ci citadel gz_common3-install-pkg-focal-amd64
install_ci citadel gz_common3-install_bottle-homebrew-amd64
install_ci citadel gz_fuel_tools4-install-pkg-focal-amd64
install_ci citadel gz_fuel_tools4-install_bottle-homebrew-amd64
install_ci citadel gz_gui3-install-pkg-focal-amd64
install_ci citadel gz_gui3-install_bottle-homebrew-amd64
install_ci citadel gz_launch2-install-pkg-focal-amd64
install_ci citadel gz_launch2-install_bottle-homebrew-amd64
install_ci citadel gz_math6-install-pkg-focal-amd64
install_ci citadel gz_math6-install_bottle-homebrew-amd64
install_ci citadel gz_msgs5-install-pkg-focal-amd64
install_ci citadel gz_msgs5-install_bottle-homebrew-amd64
install_ci citadel gz_physics2-install-pkg-focal-amd64
install_ci citadel gz_physics2-install_bottle-homebrew-amd64
install_ci citadel gz_plugin1-install-pkg-focal-amd64
install_ci citadel gz_plugin1-install_bottle-homebrew-amd64
install_ci citadel gz_rendering3-install-pkg-focal-amd64
install_ci citadel gz_rendering3-install_bottle-homebrew-amd64
install_ci citadel gz_sensors3-install-pkg-focal-amd64
install_ci citadel gz_sensors3-install_bottle-homebrew-amd64
install_ci citadel gz_sim3-install-pkg-focal-amd64
install_ci citadel gz_sim3-install_bottle-homebrew-amd64
install_ci citadel gz_tools1-install-pkg-focal-amd64
install_ci citadel gz_tools1-install_bottle-homebrew-amd64
install_ci citadel gz_transport8-install-pkg-focal-amd64
install_ci citadel gz_transport8-install_bottle-homebrew-amd64
install_ci citadel sdformat9-install-pkg-focal-amd64
install_ci citadel sdformat9-install_bottle-homebrew-amd64
install_ci fortress gz_cmake2-install-pkg-focal-amd64
install_ci fortress gz_cmake2-install_bottle-homebrew-amd64
install_ci fortress gz_common4-install-pkg-focal-amd64
install_ci fortress gz_common4-install_bottle-homebrew-amd64
install_ci fortress gz_fortress-install-pkg-focal-amd64
install_ci fortress gz_fortress-install_bottle-homebrew-amd64
install_ci fortress gz_fuel_tools7-install-pkg-focal-amd64
install_ci fortress gz_fuel_tools7-install_bottle-homebrew-amd64
install_ci fortress gz_gui6-install-pkg-focal-amd64
install_ci fortress gz_gui6-install_bottle-homebrew-amd64
install_ci fortress gz_launch5-install-pkg-focal-amd64
install_ci fortress gz_launch5-install_bottle-homebrew-amd64
install_ci fortress gz_math6-install-pkg-focal-amd64
install_ci fortress gz_math6-install_bottle-homebrew-amd64
install_ci fortress gz_msgs8-install-pkg-focal-amd64
install_ci fortress gz_msgs8-install_bottle-homebrew-amd64
install_ci fortress gz_physics5-install-pkg-focal-amd64
install_ci fortress gz_physics5-install_bottle-homebrew-amd64
install_ci fortress gz_plugin1-install-pkg-focal-amd64
install_ci fortress gz_plugin1-install_bottle-homebrew-amd64
install_ci fortress gz_rendering6-install-pkg-focal-amd64
install_ci fortress gz_rendering6-install_bottle-homebrew-amd64
install_ci fortress gz_sensors6-install-pkg-focal-amd64
install_ci fortress gz_sensors6-install_bottle-homebrew-amd64
install_ci fortress gz_sim6-install-pkg-focal-amd64
install_ci fortress gz_sim6-install_bottle-homebrew-amd64
install_ci fortress gz_tools1-install-pkg-focal-amd64
install_ci fortress gz_tools1-install_bottle-homebrew-amd64
install_ci fortress gz_transport11-install-pkg-focal-amd64
install_ci fortress gz_transport11-install_bottle-homebrew-amd64
install_ci fortress gz_utils1-install-pkg-focal-amd64
install_ci fortress gz_utils1-install_bottle-homebrew-amd64
install_ci fortress sdformat12-install-pkg-focal-amd64
install_ci fortress sdformat12-install_bottle-homebrew-amd64
install_ci garden gz_cmake3-install-pkg-focal-amd64
install_ci garden gz_cmake3-install_bottle-homebrew-amd64
install_ci garden gz_common5-install-pkg-focal-amd64
install_ci garden gz_common5-install_bottle-homebrew-amd64
install_ci garden gz_fuel_tools8-install-pkg-focal-amd64
install_ci garden gz_fuel_tools8-install_bottle-homebrew-amd64
install_ci garden gz_garden-install-pkg-focal-amd64
install_ci garden gz_garden-install_bottle-homebrew-amd64
install_ci garden gz_gui7-install-pkg-focal-amd64
install_ci garden gz_gui7-install_bottle-homebrew-amd64
install_ci garden gz_launch6-install-pkg-focal-amd64
install_ci garden gz_launch6-install_bottle-homebrew-amd64
install_ci garden gz_math7-install-pkg-focal-amd64
install_ci garden gz_math7-install_bottle-homebrew-amd64
install_ci garden gz_msgs9-install-pkg-focal-amd64
install_ci garden gz_msgs9-install_bottle-homebrew-amd64
install_ci garden gz_physics6-install-pkg-focal-amd64
install_ci garden gz_physics6-install_bottle-homebrew-amd64
install_ci garden gz_plugin2-install-pkg-focal-amd64
install_ci garden gz_plugin2-install_bottle-homebrew-amd64
install_ci garden gz_rendering7-install-pkg-focal-amd64
install_ci garden gz_rendering7-install_bottle-homebrew-amd64
install_ci garden gz_sensors7-install-pkg-focal-amd64
install_ci garden gz_sensors7-install_bottle-homebrew-amd64
install_ci garden gz_sim7-install-pkg-focal-amd64
install_ci garden gz_sim7-install_bottle-homebrew-amd64
install_ci garden gz_tools2-install-pkg-focal-amd64
install_ci garden gz_tools2-install_bottle-homebrew-amd64
install_ci garden gz_transport12-install-pkg-focal-amd64
install_ci garden gz_transport12-install_bottle-homebrew-amd64
install_ci garden gz_utils2-install-pkg-focal-amd64
install_ci garden gz_utils2-install_bottle-homebrew-amd64
install_ci garden sdformat13-install-pkg-focal-amd64
install_ci garden sdformat13-install_bottle-homebrew-amd64
install_ci harmonic gz_cmake3-install-pkg-jammy-amd64
install_ci harmonic gz_cmake3-install_bottle-homebrew-amd64
install_ci harmonic gz_common5-install-pkg-jammy-amd64
install_ci harmonic gz_common5-install_bottle-homebrew-amd64
install_ci harmonic gz_fuel_tools9-install-pkg-jammy-amd64
install_ci harmonic gz_fuel_tools9-install_bottle-homebrew-amd64
install_ci harmonic gz_gui8-install-pkg-jammy-amd64
install_ci harmonic gz_gui8-install_bottle-homebrew-amd64
install_ci harmonic gz_harmonic-install-pkg-jammy-amd64
install_ci harmonic gz_harmonic-install_bottle-homebrew-amd64
install_ci harmonic gz_launch7-install-pkg-jammy-amd64
install_ci harmonic gz_launch7-install_bottle-homebrew-amd64
install_ci harmonic gz_math7-install-pkg-jammy-amd64
install_ci harmonic gz_math7-install_bottle-homebrew-amd64
install_ci harmonic gz_msgs10-install-pkg-jammy-amd64
install_ci harmonic gz_msgs10-install_bottle-homebrew-amd64
install_ci harmonic gz_physics7-install-pkg-jammy-amd64
install_ci harmonic gz_physics7-install_bottle-homebrew-amd64
install_ci harmonic gz_plugin2-install-pkg-jammy-amd64
install_ci harmonic gz_plugin2-install_bottle-homebrew-amd64
install_ci harmonic gz_rendering8-install-pkg-jammy-amd64
install_ci harmonic gz_rendering8-install_bottle-homebrew-amd64
install_ci harmonic gz_sensors8-install-pkg-jammy-amd64
install_ci harmonic gz_sensors8-install_bottle-homebrew-amd64
install_ci harmonic gz_sim8-install-pkg-jammy-amd64
install_ci harmonic gz_sim8-install_bottle-homebrew-amd64
install_ci harmonic gz_tools2-install-pkg-jammy-amd64
install_ci harmonic gz_tools2-install_bottle-homebrew-amd64
install_ci harmonic gz_transport13-install-pkg-jammy-amd64
install_ci harmonic gz_transport13-install_bottle-homebrew-amd64
install_ci harmonic gz_utils2-install-pkg-jammy-amd64
install_ci harmonic gz_utils2-install_bottle-homebrew-amd64
install_ci harmonic sdformat14-install-pkg-jammy-amd64
install_ci harmonic sdformat14-install_bottle-homebrew-amd64
install_ci ionic gz_cmake4-install-pkg-jammy-amd64
install_ci ionic gz_cmake4-install_bottle-homebrew-amd64
install_ci ionic gz_common6-install-pkg-jammy-amd64
install_ci ionic gz_common6-install_bottle-homebrew-amd64
install_ci ionic gz_fuel_tools10-install-pkg-jammy-amd64
install_ci ionic gz_fuel_tools10-install_bottle-homebrew-amd64
install_ci ionic gz_gui9-install-pkg-jammy-amd64
install_ci ionic gz_gui9-install_bottle-homebrew-amd64
install_ci ionic gz_launch8-install-pkg-jammy-amd64
install_ci ionic gz_launch8-install_bottle-homebrew-amd64
install_ci ionic gz_math8-install-pkg-jammy-amd64
install_ci ionic gz_math8-install_bottle-homebrew-amd64
install_ci ionic gz_msgs11-install-pkg-jammy-amd64
install_ci ionic gz_msgs11-install_bottle-homebrew-amd64
install_ci ionic gz_physics8-install-pkg-jammy-amd64
install_ci ionic gz_physics8-install_bottle-homebrew-amd64
install_ci ionic gz_plugin3-install-pkg-jammy-amd64
install_ci ionic gz_plugin3-install_bottle-homebrew-amd64
install_ci ionic gz_rendering9-install-pkg-jammy-amd64
install_ci ionic gz_rendering9-install_bottle-homebrew-amd64
install_ci ionic gz_sensors9-install-pkg-jammy-amd64
install_ci ionic gz_sensors9-install_bottle-homebrew-amd64
install_ci ionic gz_sim9-install-pkg-jammy-amd64
install_ci ionic gz_sim9-install_bottle-homebrew-amd64
install_ci ionic gz_tools2-install-pkg-jammy-amd64
install_ci ionic gz_tools2-install_bottle-homebrew-amd64
install_ci ionic gz_transport14-install-pkg-jammy-amd64
install_ci ionic gz_transport14-install_bottle-homebrew-amd64
install_ci ionic gz_utils3-install-pkg-jammy-amd64
install_ci ionic gz_utils3-install_bottle-homebrew-amd64
install_ci ionic sdformat15-install-pkg-jammy-amd64
install_ci ionic sdformat15-install_bottle-homebrew-amd64
unofficial_wrappers_install_pkg_ci garden ros_gzgarden_bridge-install-pkg_humble-ci-jammy-amd64
unofficial_wrappers_install_pkg_ci garden ros_gzgarden_bridge-install-pkg_iron-ci-jammy-amd64
unofficial_wrappers_install_pkg_ci harmonic ros_gzharmonic_bridge-install-pkg_iron-ci-jammy-amd64