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
43 changes: 10 additions & 33 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,17 +97,12 @@ jobs:
] | map(select(.name as $n | $changed | index($n)))'
}
# TODO remove if-statement after zed/realsense-arm64 is supported
expand_matrix() {
local original_matrix=$1
echo "$original_matrix" | jq -c '[
.[] |
if .name == "alliander_realsense" or .name == "alliander_zed" then
. + {"arch": "amd64", "runner": "ubuntu-24.04"}
else
(. + {"arch": "amd64", "runner": "ubuntu-24.04"}),
(. + {"arch": "arm64", "runner": "ubuntu-24.04-arm"})
end
]'
}
Expand Down Expand Up @@ -238,17 +233,10 @@ jobs:

- name: Create manifest for ${{ matrix.repository }}
run: |
# TODO remove this when realsense-arm64 is supported
if docker manifest inspect allianderrobotics/${{ matrix.repository }}:latest-arm64 > /dev/null 2>&1; then
docker buildx imagetools create \
-t allianderrobotics/${{ matrix.repository }}:latest \
allianderrobotics/${{ matrix.repository }}:latest-amd64 \
allianderrobotics/${{ matrix.repository }}:latest-arm64
else
docker buildx imagetools create \
-t allianderrobotics/${{ matrix.repository }}:latest \
allianderrobotics/${{ matrix.repository }}:latest-amd64
fi
docker buildx imagetools create \
-t allianderrobotics/${{ matrix.repository }}:latest \
allianderrobotics/${{ matrix.repository }}:latest-amd64 \
allianderrobotics/${{ matrix.repository }}:latest-arm64
build-cuda:
strategy:
Expand Down Expand Up @@ -357,17 +345,10 @@ jobs:

- name: Create manifest for ${{ matrix.repository }}
run: |
# TODO fix this once zed-arm64 is supported
if docker manifest inspect allianderrobotics/${{ matrix.repository }}:latest-arm64 > /dev/null 2>&1; then
docker buildx imagetools create \
-t allianderrobotics/${{ matrix.repository }}:latest \
allianderrobotics/${{ matrix.repository }}:latest-amd64 \
allianderrobotics/${{ matrix.repository }}:latest-arm64
else
docker buildx imagetools create \
-t allianderrobotics/${{ matrix.repository }}:latest \
allianderrobotics/${{ matrix.repository }}:latest-amd64
fi
docker buildx imagetools create \
-t allianderrobotics/${{ matrix.repository }}:latest \
allianderrobotics/${{ matrix.repository }}:latest-amd64 \
allianderrobotics/${{ matrix.repository }}:latest-arm64
linting:
runs-on: ubuntu-24.04
Expand All @@ -392,6 +373,7 @@ jobs:
runner: [ubuntu-24.04, ubuntu-24.04-arm]
runs-on: ${{ matrix.runner }}
needs: [create-manifests-ubuntu, create-manifests-cuda]
if: always()
steps:
- uses: actions/checkout@v4
- name: Free disk space
Expand All @@ -409,10 +391,5 @@ jobs:
cache: "pip"
- name: Install dependencies
run: pip install pyyaml mashumaro
# TODO remove difference between ARM and non-ARM when zed/realsense-arm64 is supported:
- name: Run tests in alliander_tests container (ubuntu-24.04)
if: ${{ matrix.runner == 'ubuntu-24.04' }}
- name: Run tests in alliander_tests container
run: python3 start.py --pytest-no-nvidia
- name: Run tests in alliander_tests container (ubuntu-24.04-arm)
if: ${{ matrix.runner == 'ubuntu-24.04-arm' }}
run: python3 start.py --pytest-no-nvidia --deselect=alliander_tests/src/alliander_tests/tests/test_camera.py
15 changes: 8 additions & 7 deletions alliander_realsense/alliander_realsense.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,15 @@ RUN apt update && apt install -y --no-install-recommends \
&& apt autoremove -y \
&& apt clean

ARG ZIP_URL="https://github.com/IntelRealSense/librealsense/releases/download/v2.57.3/librealsense2_jammy_x86_debians_2_57_3_beta.zip"
ARG TEMP_DIR="/tmp/realsense_install"
ARG ZIP_FILE="$TEMP_DIR/librealsense2_jammy_x86_debians_2_57_3_beta.zip"
RUN mkdir -p "$TEMP_DIR" \
&& wget -O "$ZIP_FILE" "$ZIP_URL" \
&& unzip "$ZIP_FILE" -d "$TEMP_DIR" \
&& dpkg -i "$TEMP_DIR"/*.deb \
&& rm -rf "$TEMP_DIR"
ARG ZIP_FILE="$TEMP_DIR/librealsense2.zip"
RUN mkdir -p "$TEMP_DIR"
RUN if [ $(dpkg --print-architecture) = "amd64" ]; \
then wget -O "$ZIP_FILE" "https://github.com/realsenseai/librealsense/releases/download/v2.57.6/librealsense2_noble_x86_debians_2_57_6_beta.zip"; \
elif [ $(dpkg --print-architecture) = "arm64" ]; \
then wget -O "$ZIP_FILE" "https://github.com/realsenseai/librealsense/releases/download/v2.57.6/librealsense2_noble_ARM_debians_2_57_6_beta.zip"; \
else echo "Unsupported architecture: $(dpkg --print-architecture)"; exit 1; fi
RUN unzip "$ZIP_FILE" -d "$TEMP_DIR" && dpkg -i "$TEMP_DIR"/*.deb && rm -rf "$TEMP_DIR"

# Install Realsense Wrapper:
WORKDIR /$WORKDIR/external
Expand Down
25 changes: 11 additions & 14 deletions alliander_zed/alliander_zed.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,18 @@ ARG COLCON_BUILD_SEQUENTIAL
ENV ROS_DISTRO=jazzy

# Install ZED SDK:
ARG UBUNTU_RELEASE_YEAR=24
ARG CUDA_MAJOR=12
ARG CUDA_MINOR=9
ARG ZED_SDK_MAJOR=5
ARG ZED_SDK_MINOR=0
RUN echo "CUDA Version ${CUDA_MAJOR}.${CUDA_MINOR}.0" > /usr/local/cuda/version.txt || true \
&& installer="ZED_SDK_Ubuntu${UBUNTU_RELEASE_YEAR}_cuda${CUDA_MAJOR}.${CUDA_MINOR}.run" \
&& sdk_url="https://download.stereolabs.com/zedsdk/${ZED_SDK_MAJOR}.${ZED_SDK_MINOR}/cu${CUDA_MAJOR}/ubuntu${UBUNTU_RELEASE_YEAR}" \
&& echo "Downloading ${sdk_url} → ${installer} ..." \
&& wget -q --show-progress -O "${installer}" "${sdk_url}" \
&& chmod +x "${installer}" \
&& echo "Running installer …" \
&& ./"${installer}" -- silent \
ARG TEMP_DIR="/tmp/zed_install"
ARG RUN_FILE="$TEMP_DIR/zed_sdk.run"
RUN mkdir -p "$TEMP_DIR"
RUN if [ $(dpkg --print-architecture) = "amd64" ]; \
then wget -O "$RUN_FILE" "https://stereolabs.sfo2.cdn.digitaloceanspaces.com/zedsdk/5.0/ZED_SDK_Ubuntu24_cuda12.8_tensorrt10.9_v5.0.7.zstd.run"; \
elif [ $(dpkg --print-architecture) = "arm64" ]; \
then wget -O "$RUN_FILE" "https://stereolabs.sfo2.cdn.digitaloceanspaces.com/zedsdk/5.0/ZED_SDK_Tegra_L4T36.4_v5.0.7.zstd.run"; \
else echo "Unsupported architecture: $(dpkg --print-architecture)"; exit 1; fi
RUN chmod +x "${RUN_FILE}" \
&& "${RUN_FILE}" -- silent \
&& chmod -R u+rwX,go+rX /usr/local/zed \
&& rm -f "${installer}" \
&& rm -f "${RUN_FILE}" \
&& rm -rf /var/lib/apt/lists/*

# Install ZED Wrapper:
Expand Down
Loading