Skip to content

Docker Images CI

Docker Images CI #652

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: "humble",
# base_image: "ubuntu:22.04",
# base_image_label: "ubuntu22.04",
# }
- {
ros2_distro: "iron",
base_image: "ubuntu:22.04",
base_image_label: "ubuntu22.04",
yarp_dev_ros2_branch: "fix/yarp_master_compatibility",
yarp_dev_ros2_remote: "elandini84",
}
# - {
# ros2_distro: "humble",
# base_image: "nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.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",
yarp_dev_ros2_branch: "fix/yarp_master_compatibility",
yarp_dev_ros2_remote: "elandini84",
}
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}} --build-arg ros2_dev_branch=${{matrix.config.yarp_dev_ros2_branch}} --build-arg ros2_dev_remote=${{matrix.config.yarp_dev_ros2_remote}} -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}} --build-arg ros2_dev_branch=${{matrix.config.yarp_dev_ros2_branch}} --build-arg ros2_dev_remote=${{matrix.config.yarp_dev_ros2_remote}} -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-r1OpenPose:
# runs-on: ubuntu-latest
# steps:
# - name: Extract branch name
# shell: bash
# run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
# id: extract_branch
# - 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 openPose Docker image
# working-directory: docker_stuff/docker_openPose/
# run: |
# if [ ${{ github.event_name }} == 'schedule' ]; then
# echo "Building development tour openPose image"
# sudo docker build --build-arg ros_distro=${{steps.extract_branch.outputs.branch}} --tag elandini84/r1images:r1OpenPose_devel .
# elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
# echo "Building stable tour openPose image"
# sudo docker build --build-arg ros_distro=${{steps.extract_branch.outputs.branch}} --tag elandini84/r1images:r1OpenPose_stable .
# else
# echo "Failure!"
# exit 1
# fi
# - name: Push r1OpenPose image
# run: |
# if [ ${{ github.event_name }} == 'schedule' ]; then
# echo "Pushing r1OpenPose development image"
# docker push elandini84/r1images:r1OpenPose_devel
# elif [ ${{ github.event_name }} == 'workflow_dispatch' ]; then
# echo "Pushing r1OpenPose stable image"
# docker push elandini84/r1images:r1OpenPose_stable
# else
# echo "Failure!"
# exit 1
# fi
build-tour-docker-sim:
runs-on: ubuntu-latest
strategy:
matrix:
config:
# - {
# ros2_distro: "humble",
# base_image: "ubuntu:22.04",
# base_image_label: "ubuntu22.04",
# }
- {
ros2_distro: "iron",
base_image: "ubuntu:22.04",
base_image_label: "ubuntu22.04",
}
# - {
# ros2_distro: "humble",
# base_image: "nvidia/cuda:11.7.1-cudnn8-devel-ubuntu22.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}} --build-arg ros2_dev_branch=${{matrix.config.yarp_dev_ros2_branch}} --build-arg ros2_dev_remote=${{matrix.config.yarp_dev_ros2_remote}} -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}} --build-arg ros2_dev_branch=${{matrix.config.yarp_dev_ros2_branch}} --build-arg ros2_dev_remote=${{matrix.config.yarp_dev_ros2_remote}} -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