{"id":50280181,"url":"https://github.com/picknikrobotics/moveit_pro_ci","last_synced_at":"2026-05-28T00:01:29.645Z","repository":{"id":223281661,"uuid":"759808045","full_name":"PickNikRobotics/moveit_pro_ci","owner":"PickNikRobotics","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-08T19:56:16.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-05-08T21:35:30.590Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PickNikRobotics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-19T11:25:45.000Z","updated_at":"2026-05-08T19:52:37.000Z","dependencies_parsed_at":"2026-05-28T00:00:34.609Z","dependency_job_id":null,"html_url":"https://github.com/PickNikRobotics/moveit_pro_ci","commit_stats":null,"previous_names":["picknikrobotics/reusable_ci","picknikrobotics/moveit_pro_ci"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/PickNikRobotics/moveit_pro_ci","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PickNikRobotics%2Fmoveit_pro_ci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PickNikRobotics%2Fmoveit_pro_ci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PickNikRobotics%2Fmoveit_pro_ci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PickNikRobotics%2Fmoveit_pro_ci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PickNikRobotics","download_url":"https://codeload.github.com/PickNikRobotics/moveit_pro_ci/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PickNikRobotics%2Fmoveit_pro_ci/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33588345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-28T00:00:29.420Z","updated_at":"2026-05-28T00:01:29.621Z","avatar_url":"https://github.com/PickNikRobotics.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# MoveIt Pro Reusable CI Jobs\nThis repo showcases an example of integrating end-to-end CI jobs for MoveIt Pro applications, including workspace objective validation and intergration tests with the MoveIt Pro Runtime.\n\n## Usage\nIn your main workflow file, to test all packages in your workspace **sequentially** in a container, you can use the following job definition:\n```yaml\njobs:\n  integration-test-in-studio-container:\n    uses: PickNikRobotics/moveit_pro_ci/.github/workflows/workspace_integration_test.yaml@\u003cversion-chosen\u003e\n    with:\n      image_tag: ${{ github.event_name == 'pull_request' \u0026\u0026 github.event.pull_request.base.ref || github.ref_name }}\n      colcon_test_args: \"--executor sequential\"\n    secrets: inherit\n```\nTo test packages in your workspace **in parallel** in a container, you can utilize a matrix with the `config_package` input like in the following job definition:\n```yaml\njobs:\n  integration-test-in-studio-container:\n    uses: PickNikRobotics/moveit_pro_ci/.github/workflows/workspace_integration_test.yaml@\u003cversion-chosen\u003e\n    strategy:\n      fail-fast: false\n      matrix:\n        config_package: [lab_sim, hangar_sim, grinding_sim, factory_sim, space_satellite_sim, mock_sim]\n    with:\n      image_tag: ${{ github.event_name == 'pull_request' \u0026\u0026 github.event.pull_request.base.ref || github.ref_name }}\n      colcon_test_args: \"--executor sequential\"\n      config_package: ${{ matrix.config_package }}\n    secrets: inherit\n  ```\n\nAll input args:\n- `image_tag`: The tag of the MoveIt Pro container image to use for the job. This can be set to the branch name or a specific tag version (example: 8.1.0). The ROS distro is automatically appended to this tag (see [Supported ROS Distributions](#supported-ros-distributions) below), so the image actually pulled is `picknikciuser/moveit-studio:\u003cimage_tag\u003e-\u003cros_distro\u003e`.\n  - Note: we recommend creating branch names that match the MoveIt Pro container image tags, such as `8.1.0`, `8.2.0`, etc for your versioned out production robot applications.\n- `config_package`: The name of the MoveIt Pro config package to test. This is only required when using a matrix to run tests in parallel. Default: `\"\"` (build/test all packages).\n- `colcon_build_args`: Additional colcon arguments to pass to the `colcon build` command. Default: `\"\"`.\n- `colcon_test_args`: Additional colcon arguments to pass to the `colcon test` command. Default: `\"\"`.\n- `runner`: A runner to be passed and run the integration tests. Default: `studio_16_core_runner`.\n- `mujoco_ci_timestep`: If non-empty, set the MuJoCo `\u003coption timestep\u003e` to this value (in seconds) on every top-level `\u003cmujoco\u003e` scene file under `src/` before build. Used to keep the simulator at-or-under realtime on slower CI runners; leave empty for normal runs. Suggested: `\"0.004\"` (250 Hz). Default: `\"\"`.\n- `use_ccache`: If `true`, use ccache to speed up the colcon build. The ccache directory is restored from and saved to the GitHub Actions cache (keyed by image tag, ROS distro, and config package), and `CMAKE_{C,CXX}_COMPILER_LAUNCHER` is set to `ccache` for the build step. Default: `false`.\n- `enable_gpu`: If `true`, pass `--gpus all` to the studio container so workloads inside it can access NVIDIA hardware (CUDA inference, GPU-accelerated simulation, etc.). The caller is responsible for routing the job to a GPU-equipped runner; setting `enable_gpu: true` on a runner with no GPU exposed will fail at container start with `could not select device driver \"\" with capabilities: [[gpu]]`. Default: `false`.\n\nRequired secrets:\n- `moveit_license_key`: The MoveIt Pro license key. Passing `secrets: inherit` (as in the examples above) is the easiest way to forward it from the calling workflow.\n\n## Supported ROS Distributions\n\nThe reusable workflow runs each job once per supported ROS distro via a matrix. Currently supported:\n\n- **Humble** (`humble`)\n- **Jazzy** (`jazzy`)\n\nFor each distro, the workflow pulls `picknikciuser/moveit-studio:\u003cimage_tag\u003e-\u003cros_distro\u003e`. MoveIt Pro began supporting ROS Jazzy in 9.2.0. Jobs for each distro run in parallel and are reported as separate matrix entries in the GitHub Actions UI.\n\n## Reusable Actions\n\n### `find_release_branch`\nComposite action that lists the calling repository's branches and outputs the highest `v\u003cmajor\u003e.\u003cminor\u003e` branch name (e.g. `v9.5`). Used by the `batch-merge-release-branch` workflows across MoveIt Pro repos to pick the active release branch to merge into `main`.\n```yaml\n- name: Get current release branch\n  id: get_current_release_branch\n  uses: PickNikRobotics/moveit_pro_ci/.github/actions/find_release_branch@\u003ccommit-sha\u003e\n- name: Use it\n  run: echo \"Release branch is ${{ steps.get_current_release_branch.outputs.branch }}\"\n```\nPin by commit SHA for reproducibility.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicknikrobotics%2Fmoveit_pro_ci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpicknikrobotics%2Fmoveit_pro_ci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicknikrobotics%2Fmoveit_pro_ci/lists"}