From ac62f6f99e132139cecd174ea0d90ac59130abda Mon Sep 17 00:00:00 2001 From: aryanrajvanshi <82747315+aryanrajvanshi@users.noreply.github.com> Date: Mon, 9 Feb 2026 22:44:32 -0500 Subject: [PATCH 1/7] Upgrade Docker actions and refine build steps Updated actions to their latest versions and adjusted steps for Docker build process. --- .github/workflows/docker-build-base.yaml | 38 +++++++++++++----------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/.github/workflows/docker-build-base.yaml b/.github/workflows/docker-build-base.yaml index 0ff51e27..91886638 100644 --- a/.github/workflows/docker-build-base.yaml +++ b/.github/workflows/docker-build-base.yaml @@ -4,7 +4,7 @@ name: docker-build-base on: push: paths: - - 'autonomy_core/base/**' + - 'autonomy_core/base/**' branches: [master] workflow_dispatch: schedule: @@ -15,27 +15,31 @@ jobs: runs-on: ubuntu-20.04 steps: - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to DockerHub + if: secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push + + - name: Build and push base image id: docker_build - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v5 with: - push: true - tags: kumarrobotics/autonomy:base + context: . file: ./autonomy_core/base/Dockerfile platforms: linux/amd64,linux/arm64 - - - name: Image digest + push: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' }} + tags: kumarrobotics/autonomy:base + + - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} From f7c0248dc9c6fcfb6c9dddee1a3fb9f6ece2c2a4 Mon Sep 17 00:00:00 2001 From: aryanrajvanshi <82747315+aryanrajvanshi@users.noreply.github.com> Date: Mon, 9 Feb 2026 22:47:39 -0500 Subject: [PATCH 2/7] Modify Docker build workflow conditions Updated Docker build workflow to conditionally login and push based on repository name. --- .github/workflows/docker-build-base.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/docker-build-base.yaml b/.github/workflows/docker-build-base.yaml index 91886638..7fbb4701 100644 --- a/.github/workflows/docker-build-base.yaml +++ b/.github/workflows/docker-build-base.yaml @@ -1,6 +1,5 @@ name: docker-build-base -# Only build base when any of the files in the base directory are modified on: push: paths: @@ -25,14 +24,13 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Login to DockerHub - if: secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' + if: github.repository == 'kumarrobotics/kr_autonomous_flight' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push base image - id: docker_build uses: docker/build-push-action@v5 with: context: . @@ -40,6 +38,3 @@ jobs: platforms: linux/amd64,linux/arm64 push: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' }} tags: kumarrobotics/autonomy:base - - - name: Image digest - run: echo ${{ steps.docker_build.outputs.digest }} From 55ea9acf640eeb38c4b2df149dd36eb8e4b3e2d5 Mon Sep 17 00:00:00 2001 From: aryanrajvanshi <82747315+aryanrajvanshi@users.noreply.github.com> Date: Mon, 9 Feb 2026 22:52:44 -0500 Subject: [PATCH 3/7] Update workflow name to 'docker-build-base #Draft2' --- .github/workflows/docker-build-base.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build-base.yaml b/.github/workflows/docker-build-base.yaml index 7fbb4701..b2fea73d 100644 --- a/.github/workflows/docker-build-base.yaml +++ b/.github/workflows/docker-build-base.yaml @@ -1,4 +1,4 @@ -name: docker-build-base +name: docker-build-base #Draft2 on: push: From 3ccac69e90ace68629e8b5413f717935ffe2cd57 Mon Sep 17 00:00:00 2001 From: aryanrajvanshi <82747315+aryanrajvanshi@users.noreply.github.com> Date: Tue, 10 Feb 2026 00:05:43 -0500 Subject: [PATCH 4/7] Refactor Docker workflow for base image build Updated the Docker workflow to use the latest Ubuntu version and modified the build step to push only on upstream. --- .github/workflows/docker-build-base.yaml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-build-base.yaml b/.github/workflows/docker-build-base.yaml index b2fea73d..64342269 100644 --- a/.github/workflows/docker-build-base.yaml +++ b/.github/workflows/docker-build-base.yaml @@ -1,4 +1,4 @@ -name: docker-build-base #Draft2 +name: docker-build-base on: push: @@ -11,15 +11,12 @@ on: jobs: main: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -30,11 +27,11 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push base image + - name: Build base image (push only on upstream) uses: docker/build-push-action@v5 with: context: . file: ./autonomy_core/base/Dockerfile - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64 push: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' }} tags: kumarrobotics/autonomy:base From de264cd3decf801870d4942c9e1a1156cf67b097 Mon Sep 17 00:00:00 2001 From: aryanrajvanshi <82747315+aryanrajvanshi@users.noreply.github.com> Date: Tue, 10 Feb 2026 01:26:43 -0500 Subject: [PATCH 5/7] Add QEMU setup and conditional platforms for Docker Added QEMU setup for cross-platform builds and updated platforms conditionally based on the repository. --- .github/workflows/docker-build-base.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-build-base.yaml b/.github/workflows/docker-build-base.yaml index 64342269..9916153f 100644 --- a/.github/workflows/docker-build-base.yaml +++ b/.github/workflows/docker-build-base.yaml @@ -17,6 +17,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Set up QEMU + if: github.repository == 'kumarrobotics/kr_autonomous_flight' + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -32,6 +36,6 @@ jobs: with: context: . file: ./autonomy_core/base/Dockerfile - platforms: linux/amd64 + platforms: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} push: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' }} tags: kumarrobotics/autonomy:base From 1230444eb8272f8a18ba2f3f096eeeb24b97dcc2 Mon Sep 17 00:00:00 2001 From: aryanrajvanshi <82747315+aryanrajvanshi@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:34:25 -0500 Subject: [PATCH 6/7] Update Docker workflow for latest actions and versions --- .github/workflows/docker-build-control.yaml | 47 ++++++++++----------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/.github/workflows/docker-build-control.yaml b/.github/workflows/docker-build-control.yaml index 1e0775dc..fdf47bf0 100644 --- a/.github/workflows/docker-build-control.yaml +++ b/.github/workflows/docker-build-control.yaml @@ -11,42 +11,41 @@ on: workflow_dispatch: push: paths: - - 'autonomy_core/control/**' + - 'autonomy_core/control/**' branches: [master] # DO NOT add a schedule. This build will be triggered by base schedule. jobs: main: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - - - # This action is now required because we are building with context, - # required to clone a third party repo - name: Checkout - uses: actions/checkout@v2 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + if: github.repository == 'kumarrobotics/kr_autonomous_flight' + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to DockerHub + if: github.repository == 'kumarrobotics/kr_autonomous_flight' + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push + + - name: Build and push id: docker_build - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v5 with: context: . - push: true - tags: kumarrobotics/autonomy:control file: ./autonomy_core/control/Dockerfile - platforms: linux/amd64,linux/arm64 - - - name: Image digest + platforms: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} + push: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' }} + tags: kumarrobotics/autonomy:control + + - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }} From 3add53c2e767b455573b2b2191936bcc1cf489a8 Mon Sep 17 00:00:00 2001 From: aryanrajvanshi <82747315+aryanrajvanshi@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:44:14 -0500 Subject: [PATCH 7/7] Fix ROS apt repo key in Dockerfile Added steps to fix ROS apt repository key to prevent errors during installation. --- autonomy_core/control/Dockerfile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/autonomy_core/control/Dockerfile b/autonomy_core/control/Dockerfile index 2497da1b..d18885ff 100644 --- a/autonomy_core/control/Dockerfile +++ b/autonomy_core/control/Dockerfile @@ -1,10 +1,21 @@ FROM kumarrobotics/autonomy:base +# Fix ROS apt repo key (prevents EXPKEYSIG / 404 failures) +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl gnupg2 ca-certificates lsb-release \ + && rm -rf /var/lib/apt/lists/* + +RUN curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc \ + | gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg \ + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" \ + > /etc/apt/sources.list.d/ros1-latest.list + RUN apt-get update \ && apt-get install -y \ ros-noetic-mavros \ ros-noetic-mavros-msgs \ - ros-noetic-mavros-extras + ros-noetic-mavros-extras \ + && rm -rf /var/lib/apt/lists/* RUN mkdir -p /root/control_ws/src WORKDIR /root/control_ws @@ -15,4 +26,3 @@ RUN catkin build -j2 --no-status -DCMAKE_BUILD_TYPE=Release COPY autonomy_core/control/docker/entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] -