Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/actions/lint/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
FROM ros:humble

# Install ament linting tools
RUN apt-get update && apt-get install -y \
ros-humble-ament-lint \
ros-humble-ament-cppcheck \
ros-humble-ament-uncrustify \
ros-humble-ament-lint-cmake \
ros-humble-ament-cpplint \
ros-humble-ament-xmllint \
&& rm -rf /var/lib/apt/lists/*

COPY run.sh /run.sh
RUN chmod +x /run.sh

ENTRYPOINT ["/run.sh"]
3 changes: 2 additions & 1 deletion .github/actions/lint/run.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/bin/bash
set -e

ament_${LINTER} src/
source /opt/ros/humble/setup.bash
ament_${LINTER} src/
49 changes: 49 additions & 0 deletions .github/workflows/docker-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Build and Push Docker Image to GHCR
on:
push:
tags:
- 'v*'
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}

- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ./.devcontainer/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
4 changes: 2 additions & 2 deletions .github/workflows/ros.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: ROS C++ Testing and Linting

on:
push:
branches: [main, humble]
branches: [main, humble, feature/*]
pull_request:
branches: [main, humble]
branches: [main, humble, feature/*]
workflow_dispatch:

jobs:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ruff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Check Code Style - Ruff

on:
push:
branches: [main, humble]
branches: [main, humble, feature/*]
pull_request:
branches: [main, humble]
branches: [main, humble, feature/*]
workflow_dispatch:

jobs:
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/super-linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ name: Lint Code Base (Super-Linter)

on:
push:
branches: [main, humble]
branches: [main, humble, feature/*]
pull_request:
branches: [main, humble]
branches: [main, humble, feature/*]

jobs:
run-lint:
runs-on: ubuntu-latest
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,4 @@ src/end_effectors/serial/
src/end_effectors/robotiq_hande_driver/
src/end_effectors/robotiq_hande_description/
src/end_effectors/ros2_epick_gripper/
src/end_effectors/pipettor/
3 changes: 2 additions & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ colcon build \
--symlink-install \
--executor sequential \
--cmake-args "-DCMAKE_BUILD_TYPE=$BUILD_TYPE" "-DCMAKE_EXPORT_COMPILE_COMMANDS=On" \
-Wall -Wextra -Wpedantic
-Wall -Wextra -Wpedantic \
--packages-skip epick_moveit_studio epick_config
3 changes: 2 additions & 1 deletion setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
set -e

vcs import < src/ros2.repos src
vcs import < src/end_effectors/end_effectors.repos src/end_effectors
sudo apt-get update
rosdep update
rosdep install --from-paths src --ignore-src -y
rosdep install --from-paths src --ignore-src -y --skip-keys moveit_studio_behavior_interface --skip-keys epick_moveit_studio
Empty file added src/aruco_pose/COLCON_IGNORE
Empty file.
1 change: 1 addition & 0 deletions src/end_effectors/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ This pulls in:
- `robotiq_hande_driver` - Robotiq HandE gripper driver
- `robotiq_hande_description` - Robotiq HandE URDF models
- `ros2_epick_gripper` - EPick vacuum gripper driver
- `pipettor` - Custom pipettor developed at CMS NSLS-2

**Note:** The `ros2_epick_gripper` repository includes `epick_moveit_studio` which depends on paywalled MoveIt Studio/MoveIt Pro packages. Since we don't use this package, skip it during build and dependency installation:

Expand Down
4 changes: 4 additions & 0 deletions src/end_effectors/end_effectors.repos
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,8 @@ repositories:
ros2_epick_gripper:
type: git
url: https://github.com/PickNikRobotics/ros2_epick_gripper.git
version: main
pipettor:
type: git
url: https://github.com/sixym3/pipettor.git
version: main
Empty file added src/pdf/COLCON_IGNORE
Empty file.