Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions .github/workflows/docker-build-base.yaml
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
name: docker-build-base

# Only build base when any of the files in the base directory are modified
on:
push:
paths:
- 'autonomy_core/base/**'
- 'autonomy_core/base/**'
branches: [master]
workflow_dispatch:
schedule:
- cron: '0 0 * * 0'

jobs:
main:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest

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
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
id: docker_build
uses: docker/build-push-action@v2

- name: Build base image (push only on upstream)
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
run: echo ${{ steps.docker_build.outputs.digest }}
platforms: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' && 'linux/amd64,linux/arm64' || 'linux/amd64' }}
push: ${{ github.repository == 'kumarrobotics/kr_autonomous_flight' }}
tags: kumarrobotics/autonomy:base
47 changes: 23 additions & 24 deletions .github/workflows/docker-build-control.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
14 changes: 12 additions & 2 deletions autonomy_core/control/Dockerfile
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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"]

Loading