Docker Images CI #667
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |