Skip to content

Commit fe046a2

Browse files
committed
[ci] Add gazebo docker build
1 parent 5ba1e72 commit fe046a2

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

.github/workflows/ci_downstream.yml

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# https://help.github.com/en/articles/workflow-syntax-for-github-actions
2+
3+
name: CI Downstream
4+
5+
on:
6+
push:
7+
branches:
8+
- "**"
9+
paths-ignore:
10+
- ".github/workflows/cache_*.yml"
11+
- "docker/dev/**"
12+
pull_request:
13+
branches:
14+
- "**"
15+
paths-ignore:
16+
- ".github/workflows/cache_*.yml"
17+
- "docker/dev/**"
18+
schedule:
19+
# Cron syntax: [minute hour day_of_the_month month day_of_the_week]
20+
- cron: "0 2 * * 0,3" # Run every Sunday and Wednesday at 02:00
21+
workflow_dispatch:
22+
23+
env:
24+
DOCKER_REPO: jslee02/dart-dev # https://hub.docker.com/repository/docker/jslee02/dart-dev
25+
26+
jobs:
27+
tracy:
28+
name: gazebo
29+
runs-on: ubuntu-latest
30+
strategy:
31+
fail-fast: false
32+
matrix:
33+
dart_version: [v6.14]
34+
build_min: [ON]
35+
env:
36+
OS_VERSION: gazebo
37+
DART_VERSION: ${{ matrix.dart_version }}
38+
steps:
39+
# https://github.com/marketplace/actions/docker-setup-qemu
40+
- name: Set up QEMU
41+
uses: docker/setup-qemu-action@v3
42+
# https://github.com/marketplace/actions/docker-setup-buildx
43+
- name: Set up Docker Buildx
44+
uses: docker/setup-buildx-action@v3
45+
# https://github.com/marketplace/actions/docker-login
46+
- name: Login to DockerHub
47+
uses: docker/login-action@v3
48+
with:
49+
username: ${{ secrets.DOCKER_USERNAME }}
50+
password: ${{ secrets.DOCKER_PASSWORD }}
51+
# https://github.com/marketplace/actions/build-and-push-docker-images
52+
- name: Build and push
53+
id: docker_build
54+
uses: docker/build-push-action@v5
55+
with:
56+
file: ./docker/dev/${{ env.DART_VERSION }}/Dockerfile.${{ env.OS_VERSION }}
57+
push: true
58+
tags: ${{ env.DOCKER_REPO }}:${{ env.OS_VERSION }}-${{ env.DART_VERSION }}
59+
- name: Image digest
60+
run: echo ${{ steps.docker_build.outputs.digest }}

docker/dev/v6.14/Dockerfile.gazebo

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Use an Ubuntu base image
2+
FROM jslee02/dart-dev:ubuntu-jammy-v6.14
3+
4+
# Avoid warnings by switching to noninteractive
5+
ENV DEBIAN_FRONTEND=noninteractive
6+
7+
WORKDIR /ws
8+
9+
# Compile and install DART and dartpy
10+
COPY . /ws/dart
11+
RUN rm -rf /ws/dart/build
12+
RUN cmake \
13+
-S dart \
14+
-B dart/build \
15+
-DCMAKE_INSTALL_PREFIX=/usr/ \
16+
-DCMAKE_BUILD_TYPE=Release .. \
17+
-DBUILD_SHARED_LIBS=ON \
18+
&& cmake \
19+
--build dart/build \
20+
--target install \
21+
-j16
22+
23+
# Install Gazebo from source
24+
ENV IGNITION_PHYSICS_VERSION=7
25+
RUN apt-add-repository -s "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -c -s) main"
26+
RUN apt-get build-dep -y ignition-physics${IGNITION_PHYSICS_VERSION}-dev
27+
RUN clone https://github.com/ignitionrobotics/ign-physics -b ign-physics${IGNITION_PHYSICS_VERSION}
28+
RUN cmake \
29+
-S ign-physics \
30+
-B ign-physics/build \
31+
-DCMAKE_BUILD_TYPE=Release .. \
32+
&& cmake \
33+
--build build \
34+
--target install \
35+
-j16

0 commit comments

Comments
 (0)