From 79075f815de38a9f0f49b250982714573d0193eb Mon Sep 17 00:00:00 2001 From: Karolina Kozubik <62891563+karofox@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:49:17 +0200 Subject: [PATCH 1/7] Update docker-build-push.yaml --- .github/workflows/docker-build-push.yaml | 63 ++++++++++++++---------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index d31a405..763d72c 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -1,53 +1,64 @@ -name: Build and Push Docker Image (amd64 & arm64) +name: Build and Push Docker Image (native amd64 & arm64) on: push: - branches: ["main"] + branches: ["main", "workflow"] env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository_owner }}/ros-core jobs: - build-and-push: - runs-on: ubuntu-latest + build: + strategy: + matrix: + include: + - arch: amd64 + runner: ubuntu-latest + platform: linux/amd64 + - arch: arm64 + runner: ubuntu-24.04-arm64 # or "self-hosted" if you have your own Pi/ARM runner + platform: linux/arm64 + runs-on: ${{ matrix.runner }} permissions: contents: read packages: write - steps: - name: Checkout repository uses: actions/checkout@v4 - - name: Log in to the Container registry + - name: Log in to GHCR uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - with: - platforms: arm64 - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=raw,value=latest - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build and push (amd64 & arm64) + - name: Build and push image (${{ matrix.platform }}) uses: docker/build-push-action@v5 with: context: . file: ./images/ros-core.Dockerfile - platforms: linux/amd64,linux/arm64 push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} + platforms: ${{ matrix.platform }} + tags: ${{ matrix.arch }} + + manifest: + runs-on: ubuntu-latest + needs: build + permissions: + packages: write + steps: + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Create and push multi-arch manifest + run: | + docker buildx imagetools create \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest \ + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:amd64 \ + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:arm64 From 9fa5d1973aaa5daa6a432f76d40238248341d8ec Mon Sep 17 00:00:00 2001 From: Karolina Kozubik <62891563+karofox@users.noreply.github.com> Date: Thu, 25 Sep 2025 13:59:23 +0200 Subject: [PATCH 2/7] Push to ghcr --- .github/workflows/docker-build-push.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index 763d72c..6600e6f 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -41,7 +41,9 @@ jobs: file: ./images/ros-core.Dockerfile push: true platforms: ${{ matrix.platform }} - tags: ${{ matrix.arch }} + tags: | + ghcr.io/${{ github.repository_owner }}/ros-core:latest + ghcr.io/${{ github.repository_owner }}/ros-core:${{ matrix.platform }} manifest: runs-on: ubuntu-latest From 7669c9dcf861f6e5ad148b994caebf5d95612787 Mon Sep 17 00:00:00 2001 From: Karolina Kozubik <62891563+karofox@users.noreply.github.com> Date: Thu, 25 Sep 2025 14:01:52 +0200 Subject: [PATCH 3/7] lowercase repository owner --- .github/workflows/docker-build-push.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index 6600e6f..251b8ee 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -6,7 +6,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository_owner }}/ros-core + IMAGE_NAME: ${{ github.repository_owner,, }}/ros-core jobs: build: @@ -42,8 +42,8 @@ jobs: push: true platforms: ${{ matrix.platform }} tags: | - ghcr.io/${{ github.repository_owner }}/ros-core:latest - ghcr.io/${{ github.repository_owner }}/ros-core:${{ matrix.platform }} + ghcr.io/${{ github.repository_owner,, }}/ros-cor:latest + ghcr.io/${{ github.repository_owner,, }}/ros-core:${{ matrix.platform }} manifest: runs-on: ubuntu-latest From b113803a5561f9a5141ea5b4b2b4848d8100850d Mon Sep 17 00:00:00 2001 From: Karolina Kozubik <62891563+karofox@users.noreply.github.com> Date: Thu, 25 Sep 2025 14:03:49 +0200 Subject: [PATCH 4/7] literal owner name --- .github/workflows/docker-build-push.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index 251b8ee..9ee00b0 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -6,7 +6,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository_owner,, }}/ros-core + IMAGE_NAME: high-flyers/ros-core jobs: build: @@ -42,8 +42,8 @@ jobs: push: true platforms: ${{ matrix.platform }} tags: | - ghcr.io/${{ github.repository_owner,, }}/ros-cor:latest - ghcr.io/${{ github.repository_owner,, }}/ros-core:${{ matrix.platform }} + ghcr.io/high-flyers/ros-cor:latest + ghcr.io/high-flyers/ros-core:${{ matrix.platform }} manifest: runs-on: ubuntu-latest From 720ed9e78b870584ffacc56747ae6e12e0d0a2ab Mon Sep 17 00:00:00 2001 From: Karolina Kozubik <62891563+karofox@users.noreply.github.com> Date: Thu, 25 Sep 2025 14:05:42 +0200 Subject: [PATCH 5/7] use matrix arch tag --- .github/workflows/docker-build-push.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index 9ee00b0..75b0628 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -43,7 +43,7 @@ jobs: platforms: ${{ matrix.platform }} tags: | ghcr.io/high-flyers/ros-cor:latest - ghcr.io/high-flyers/ros-core:${{ matrix.platform }} + ghcr.io/high-flyers/ros-core:${{ matrix.arch }} manifest: runs-on: ubuntu-latest From 716b360ae99d722905f639ae181c9313650287df Mon Sep 17 00:00:00 2001 From: Karolina Kozubik <62891563+karofox@users.noreply.github.com> Date: Thu, 25 Sep 2025 14:10:03 +0200 Subject: [PATCH 6/7] fix typo --- .github/workflows/docker-build-push.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index 75b0628..4baaa9e 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -42,7 +42,7 @@ jobs: push: true platforms: ${{ matrix.platform }} tags: | - ghcr.io/high-flyers/ros-cor:latest + ghcr.io/high-flyers/ros-core:latest ghcr.io/high-flyers/ros-core:${{ matrix.arch }} manifest: From a1ae266b9a9278c2a13d79174816f38291c5978d Mon Sep 17 00:00:00 2001 From: Karolina Kozubik <62891563+karofox@users.noreply.github.com> Date: Thu, 25 Sep 2025 14:20:13 +0200 Subject: [PATCH 7/7] Use arm runner --- .github/workflows/docker-build-push.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index 4baaa9e..2f1864a 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -17,7 +17,7 @@ jobs: runner: ubuntu-latest platform: linux/amd64 - arch: arm64 - runner: ubuntu-24.04-arm64 # or "self-hosted" if you have your own Pi/ARM runner + runner: ubuntu-24.04-arm platform: linux/arm64 runs-on: ${{ matrix.runner }} permissions: