Skip to content

Fix build arg (again) #38

Fix build arg (again)

Fix build arg (again) #38

name: DockerPublish
on:
workflow_dispatch:
push:
env:
REGISTRY_IMAGE: ghcr.io/${{ github.repository }}
# Only push images on forks or the main branch
PUSH_IMAGE: ${{ (github.ref_name == 'master') || (github.repository_owner != 'moos-ivp') }}
jobs:
build-minrobot:
runs-on: ubuntu-latest
outputs:
# So we can `FROM` this image in the next build
digest: ${{ steps.build.outputs.digest }}
steps:
- name: Prepare
run: |
echo "COMMIT_TIMESTAMP=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
env:
SOURCE_DATE_EPOCH: ${{ env.COMMIT_TIMESTAMP }}
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: |
# branch event
type=ref,enable=true,prefix=,event=branch
# tag event
type=ref,enable=true,prefix=,event=tag
# pull request event
type=ref,enable=true,prefix=pr-,suffix=,event=pr
# commit sha
type=sha,prefix=,suffix=,format=short
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
env:
SOURCE_DATE_EPOCH: ${{ env.COMMIT_TIMESTAMP }}
with:
platforms: linux/amd64,linux/arm64
annotations: ${{ steps.meta.outputs.annotations }}
build-args: |
SOURCE_DATE_EPOCH=${{ env.COMMIT_TIMESTAMP }}
file: docker/moos-ivp/Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
tags: ${{ steps.meta.outputs.tags }}
push: ${{ env.PUSH_IMAGE }}
build-gui:
runs-on: ubuntu-latest
needs:
- build-minrobot
env:
FLAVOR: "-gui"
steps:
- name: Prepare
run: |
echo "COMMIT_TIMESTAMP=$(git log -1 --pretty=%ct)" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
env:
SOURCE_DATE_EPOCH: ${{ env.COMMIT_TIMESTAMP }}
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: |
# branch event
type=ref,enable=true,suffix=${{ env.FLAVOR }},event=branch
# tag event
type=ref,enable=true,suffix=${{ env.FLAVOR }},event=tag
# pull request event
type=ref,enable=true,prefix=pr-,suffix=${{ env.FLAVOR }},event=pr
# commit sha
type=sha,prefix=,suffix=${{ env.FLAVOR }},format=short
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
env:
SOURCE_DATE_EPOCH: ${{ env.COMMIT_TIMESTAMP }}
with:
platforms: linux/amd64,linux/arm64
annotations: ${{ steps.meta.outputs.annotations }}
build-args: |
FROM=${{ env.REGISTRY_IMAGE }}@${{ needs.build-minrobot.outputs.digest }}
SOURCE_DATE_EPOCH=${{ env.COMMIT_TIMESTAMP }}
file: docker/moos-ivp-gui/Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
tags: ${{ steps.meta.outputs.tags }}
push: ${{ env.PUSH_IMAGE }}