Skip to content

Docker Images CI

Docker Images CI #617

Workflow file for this run

name: Docker Images CI
on:
schedule:
- cron: "0 2 * * 1-5"
workflow_dispatch:
jobs:
build-tour-docker:
runs-on: ubuntu-latest
strategy:
matrix:
config:
- {
ros2_distro: "jazzy",
base_image: "ubuntu:24.04",
base_image_label: "ubuntu24.04",
}
# - {
# ros2_distro: "iron",
# base_image: "ubuntu:22.04",
# base_image_label: "ubuntu22.04",
# }
# - {
# ros2_distro: "jazzy",
# base_image: "nvidia/cuda:12.6.1-cudnn-devel-ubuntu24.04",
# base_image_label: "cuda.12.6.1-cudnn8",
# }
# - {
# ros2_distro: "iron",
# base_image: "nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.04",
# base_image_label: "cuda.11.7.1-cudnn8",
# }
steps:
- name: Info
run: |
echo "Event type: ${{github.event_name}}"
- name: Change docker to experimental mode
run: |
sudo rm -rf /etc/docker/daemon.json
echo '{"experimental": true}' | sudo tee -a /etc/docker/daemon.json
- name: Restart docker daemon
run: sudo systemctl restart docker
- uses: actions/checkout@v4
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build the tour core Docker image
working-directory: docker_stuff/docker_tourCore2/
run: |
if [ ${{ github.event_name }} == 'schedule' ]; then
echo "Building development tour core image"
sudo docker build --build-arg base_img=${{matrix.config.base_image}} --build-arg ros_distro=${{matrix.config.ros2_distro}} -t elandini84/r1images:tourCore2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_devel .
elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
echo "Building stable tour core image"
sudo docker build --build-arg base_img=${{matrix.config.base_image}} --build-arg ros_distro=${{matrix.config.ros2_distro}} -t elandini84/r1images:tourCore2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_stable .
else
echo "Failure!"
exit 1
fi
- name: Push tourCore2 image
run: |
if [ ${{ github.event_name }} == 'schedule' ]; then
echo "Pushing tourCore2 development image"
docker push elandini84/r1images:tourCore2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_devel
elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
echo "Pushing tourCore2 stable image"
docker push elandini84/r1images:tourCore2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_stable
else
echo "Failure!"
exit 1
fi
build-tour-docker-sim:
runs-on: ubuntu-latest
strategy:
matrix:
config:
- {
ros2_distro: "jazzy",
base_image: "ubuntu:24.04",
base_image_label: "ubuntu24.04",
}
# - {
# ros2_distro: "iron",
# base_image: "ubuntu:22.04",
# base_image_label: "ubuntu22.04",
# }
# - {
# ros2_distro: "jazzy",
# base_image: "nvidia/cuda:12.6.1-cudnn-devel-ubuntu24.04",
# base_image_label: "cuda.11.7.1-cudnn8",
# }
# - {
# ros2_distro: "iron",
# base_image: "nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.04",
# base_image_label: "cuda.11.7.1-cudnn8",
# }
steps:
- name: Info
run: |
echo "Event type: ${{github.event_name}}"
- name: Change docker to experimental mode
run: |
sudo rm -rf /etc/docker/daemon.json
echo '{"experimental": true}' | sudo tee -a /etc/docker/daemon.json
- name: Restart docker daemon
run: sudo systemctl restart docker
- uses: actions/checkout@v4
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build the tour core Docker image for simulation
working-directory: docker_stuff/docker_sim2/
run: |
if [ ${{ github.event_name }} == 'schedule' ]; then
echo "Building development tour core image"
sudo docker build --build-arg base_img=${{matrix.config.base_image}} --build-arg ros_distro=${{matrix.config.ros2_distro}} -t elandini84/r1images:tourSim2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_devel .
elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
echo "Building stable tour core image"
sudo docker build --build-arg base_img=${{matrix.config.base_image}} --build-arg ros_distro=${{matrix.config.ros2_distro}} -t elandini84/r1images:tourSim2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_stable .
else
echo "Failure!"
exit 1
fi
- name: Push tourSim2 image
run: |
if [ ${{ github.event_name }} == 'schedule' ]; then
echo "Pushing tourCore2 development image"
docker push elandini84/r1images:tourSim2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_devel
elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
echo "Pushing tourCore2 stable image"
docker push elandini84/r1images:tourSim2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_stable
else
echo "Failure!"
exit 1
fi