diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 51526802..61704760 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -150,8 +150,8 @@ jobs: fail-fast: false matrix: # Stream 2 expands this list one PR at a time as each sim gains a - # pytest entry. Today only lab_sim has one. - config_package: [lab_sim] + # pytest entry. + config_package: [lab_sim, hangar_sim] permissions: # contents: read for checkout; id-token: write so the reusable workflow # can assume the LFS S3 cache IAM role via OIDC (moveit_pro_ci v0.5.x). @@ -306,7 +306,13 @@ jobs: # Keep in sync with `integration-test.matrix.config_package` above and # with the reusable workflow's internal ros_distro matrix. Stream 2 # expands `config_package` per sim; this matrix expands alongside. - config_package: [lab_sim] + # NOTE: the publish-and-comment job below is still pinned to lab_sim + # (see the `integration-test-report-lab_sim-*` downloads), so reports + # for other sims are produced as artifacts here but not yet surfaced in + # the PR comment. Merge gating is unaffected — the aggregate + # `example_ws / integration` status covers every config_package. The + # follow-up templates publish-and-comment over config_package. + config_package: [lab_sim, hangar_sim] ros_distro: [humble, jazzy] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 diff --git a/src/hangar_sim/CMakeLists.txt b/src/hangar_sim/CMakeLists.txt index 14a7e163..9f7ecb8e 100644 --- a/src/hangar_sim/CMakeLists.txt +++ b/src/hangar_sim/CMakeLists.txt @@ -32,8 +32,25 @@ install(IMPORTED_RUNTIME_ARTIFACTS moveit_studio_plugins::dummy_controller_handl lib) if(BUILD_TESTING) + find_package(ament_cmake_pytest REQUIRED) find_package(ament_lint_auto REQUIRED) ament_lint_auto_find_test_dependencies() + # Redirect ROS node logs into the test_results tree so the test-results CI + # artifact ships them back too. Default would be ~/.ros/log/, which lives + # on the doomed container filesystem and never gets uploaded -- making + # post-mortem of objective failures impossible. + ament_add_pytest_test( + objectives_integration_test test/objectives_integration_test.py + TIMEOUT 600 + ENV MOVEIT_CONFIG_PACKAGE=hangar_sim + MOVEIT_HOST_USER_WORKSPACE=${CMAKE_SOURCE_DIR} + ROS_LOG_DIR=${CMAKE_CURRENT_BINARY_DIR}/test_results/${PROJECT_NAME}/ros_logs) + # TEMPORARY: diagnose why hangar's MuJoCo model fails to load on the CI + # runtime image. No backend; just probes the MuJoCo plugin/version/mesh + # state and reproduces mj_loadXML. Remove once root cause is known. + ament_add_pytest_test( + mujoco_env_diagnostic test/mujoco_env_diagnostic_test.py + TIMEOUT 120) endif() ament_package() diff --git a/src/hangar_sim/description/hangar_scene.xml b/src/hangar_sim/description/hangar_scene.xml index 6629ca67..e4d3a392 100644 --- a/src/hangar_sim/description/hangar_scene.xml +++ b/src/hangar_sim/description/hangar_scene.xml @@ -1,17 +1,16 @@ - - - - + + + diff --git a/src/hangar_sim/description/ur5e_ridgeback.xml b/src/hangar_sim/description/ur5e_ridgeback.xml index 2ac746e5..17a47f43 100644 --- a/src/hangar_sim/description/ur5e_ridgeback.xml +++ b/src/hangar_sim/description/ur5e_ridgeback.xml @@ -1,8 +1,6 @@ -