Skip to content

Docker Images CI

Docker Images CI #36

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: "iron",
base_image: "elandini84/r1images:tourCore2_ubuntu22.04_iron_devel",
base_image_label: "ubuntu22.04",
}
- {
ros2_distro: "iron",
base_image: "elandini84/r1images:tourCore2_cuda.11.7.1-cudnn8_iron_devel",
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: ste93
password: ${{ secrets.STE93_DOCKERHUB_TOKEN }}
- name: Build the tour core Docker image
working-directory: laboratory-tour/docker
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 ste93/convince:laboratory_tour_${{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 ste93/convince:laboratory_tour_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_stable .
else
echo "Failure!"
exit 1
fi
- name: Push tourCore2 image
working-directory: laboratory-tour/docker
run: |
if [ ${{ github.event_name }} == 'schedule' ]; then
echo "Pushing tourCore2 development image"
docker push ste93/convince:laboratory_tour_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_devel
elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
echo "Pushing tourCore2 stable image"
docker push ste93/convince:laboratory_tour_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_stable
else
echo "Failure!"
exit 1
fi
# for now we don't build the sim, later we will see
# build-tour-docker-sim:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# config:
# - {
# ros2_distro: "iron",
# base_image: "ubuntu:22.04",
# base_image_label: "ubuntu22.04",
# }
# - {
# 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 ste93/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 ste93/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 ste93/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 ste93/r1images:tourSim2_${{matrix.config.base_image_label}}_${{matrix.config.ros2_distro}}_stable
# else
# echo "Failure!"
# exit 1
# fi