Skip to content

Improve ros_launch support for launch files #1464

Improve ros_launch support for launch files

Improve ros_launch support for launch files #1464

Workflow file for this run

name: drake-ros continuous integration
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}-${{ github.ref == 'refs/heads/main' && github.sha || ''}}
cancel-in-progress: true
jobs:
pre_commit:
name: Run linters and formatters
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Install pre-commit
run: pip install pre-commit
- name: Run pre-commit hooks
run: pre-commit run --all-files --show-diff-on-failure
if: "! contains(github.event.pull_request.labels.*.name, 'status: defer ci')"
build_container:
name: Build drake-ros container image
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Free up runner space
uses: ./.github/actions/free-disk-space
- name: Build container image
run: |
docker build -t drake-ros:ci-${{ github.sha }} -f .devcontainer/Dockerfile .
- name: Save container image
run: |
docker save drake-ros:ci-${{ github.sha }} | gzip > /tmp/drake-ros-image.tar.gz
- name: Upload container image artifact
uses: actions/upload-artifact@v4
with:
name: drake-ros-image
path: /tmp/drake-ros-image.tar.gz
retention-days: 1
if: "! contains(github.event.pull_request.labels.*.name, 'status: defer ci')"
bazel_ros2_rules_test:
name: Build and test bazel_ros2_rules modules with bazel
runs-on: ubuntu-24.04
needs: build_container
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Free up runner space
uses: ./.github/actions/free-disk-space
- name: Download container image artifact
uses: actions/download-artifact@v4
with:
name: drake-ros-image
path: /tmp
- name: Load container image
run: |
docker load < /tmp/drake-ros-image.tar.gz
- name: Configure AppArmor for ROS network isolation
uses: ./.github/actions/configure-apparmor
- name: Run bazel_ros2_rules tests
run: |
docker run --rm --privileged \
-v ${{ github.workspace }}:/drake-ros \
-u $(id -u):$(id -g) \
drake-ros:ci-${{ github.sha }} \
/drake-ros/.github/scripts/run_bazel_ros2_tests.sh
if: "! contains(github.event.pull_request.labels.*.name, 'status: defer ci')"
bazel_drake_ros_test:
name: Build and test drake_ros modules with bazel
runs-on: ubuntu-24.04
needs: build_container
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Free up runner space
uses: ./.github/actions/free-disk-space
- name: Download container image artifact
uses: actions/download-artifact@v4
with:
name: drake-ros-image
path: /tmp
- name: Load container image
run: |
docker load < /tmp/drake-ros-image.tar.gz
- name: Configure AppArmor for ROS network isolation
uses: ./.github/actions/configure-apparmor
- name: Run drake_ros bazel tests
run: |
docker run --rm --privileged \
-v ${{ github.workspace }}:/drake-ros \
-u $(id -u):$(id -g) \
drake-ros:ci-${{ github.sha }} \
/drake-ros/.github/scripts/run_bazel_drake_tests.sh
if: "! contains(github.event.pull_request.labels.*.name, 'status: defer ci')"
colcon_drake_ros_test:
name: Build and test drake_ros packages with colcon
runs-on: ubuntu-24.04
needs: build_container
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Free up runner space
uses: ./.github/actions/free-disk-space
- name: Download container image artifact
uses: actions/download-artifact@v4
with:
name: drake-ros-image
path: /tmp
- name: Load container image
run: |
docker load < /tmp/drake-ros-image.tar.gz
- name: Configure AppArmor for ROS network isolation
uses: ./.github/actions/configure-apparmor
- name: Run colcon tests
run: |
docker run --rm \
-v ${{ github.workspace }}:/drake-ros \
-u $(id -u):$(id -g) \
drake-ros:ci-${{ github.sha }} \
/drake-ros/.github/scripts/run_colcon_tests.sh
if: "! contains(github.event.pull_request.labels.*.name, 'status: defer ci')"