Skip to content

publish manifest

publish manifest #21

name: Build and Publish Kona FPP Images
on:
workflow_dispatch:
inputs:
asterisc_tag:
description: Tag for `asterisc` to build the prestate artifacts
required: true
type: string
push:
env:
REGISTRY: ghcr.io
jobs:
build-fpp-images:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
strategy:
matrix:
fpvm: ["asterisc"]
platform: ["amd64", "arm64"]
env:
IMAGE_NAME: ${{ github.repository }}/kona-fpp-${{ matrix.fpvm }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Authenticate with container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
- name: Build and Publish `kona-fpp-${{ matrix.fpvm }}` (${{ matrix.platform }})
uses: docker/build-push-action@v6
with:
file: build/${{ matrix.fpvm }}/${{ matrix.fpvm }}-repro.dockerfile
context: .
push: true
tags: ${{ github.ref_name }}-${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/${{ matrix.platform }}
build-args: |
CLIENT_TAG=${{ github.ref_name }}
ASTERISC_TAG=${{ inputs.asterisc_tag }}
publish-multiarch-manifest:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
needs: build-fpp-images
strategy:
matrix:
fpvm: ["asterisc"]
env:
IMAGE_NAME: ${{ github.repository }}/kona-fpp-${{ matrix.fpvm }}
steps:
- name: Authenticate with container registry
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 manifest create ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} \
--amend ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}-amd64 \
--amend ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}-arm64
docker manifest push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}
- name: Inspect Manifest
run: |
docker manifest inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}