Skip to content

Commit

Permalink
One more test
Browse files Browse the repository at this point in the history
  • Loading branch information
ubiratansoares committed Sep 8, 2024
1 parent 4fad8bd commit d63bc90
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 54 deletions.
45 changes: 7 additions & 38 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,6 @@ jobs:
id: docker-env
run: ./docker-build-helper.sh prepare-environment

- name: Extract Docker metadata
id: docker-metadata
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}

- name: Set up docker-buildx
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1

Expand All @@ -61,42 +55,20 @@ jobs:
id: build
uses: docker/build-push-action@5cd11c3a4ced054e52742c5fd54dca954e0edd85 # v6.7.0
with:
push: true
provenance: false
platforms: linux/${{ steps.docker-env.outputs.platform }}
labels: ${{ steps.docker-metadata.outputs.labels }}
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true

- name: Export build digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: digests-${{ steps.docker-env.outputs.platform }}
path: /tmp/digests/*
outputs: type=registry,push=true
tags: ${{ env.REGISTRY_IMAGE }}:${{ github.sha }}-${{ steps.docker-env.outputs.platform }}

merge-manifests:
runs-on: ubuntu-22.04
needs: build-docker-images

steps:
- name: Download digests
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true

- name: Set up docker-buildx
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
- name: Project Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Log in to Github Container Registry
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
Expand All @@ -106,10 +78,7 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}

- name: Create and push merged manifest
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
run: ./docker-build-helper.sh push-merged-manifest ${{ github.sha }}

- name: Inspect image
run: docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
24 changes: 8 additions & 16 deletions docker-build-helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
set -e

readonly runner="$RUNNER_NAME"
readonly docker_image="ghcr.io/dotanuki-labs/callinectes"

prepare_env_for_build() {
case "$runner" in
Expand All @@ -21,20 +22,14 @@ prepare_env_for_build() {
esac
}

collect_digest() {
local
mkdir -p /tmp/digests
digest="$argument"
touch "/tmp/digests/$digest#sha256"
}

merge_and_push_manifest() {
local merged
merged=$(jq -cr '.tags | map("-t " + .) | join(" ")' <<<"$DOCKER_METADATA_OUTPUT_JSON")
local package="$docker_image:$argument"

local name
name=$(printf "$argument@sha256:%s " *)
docker buildx imagetools create "$merged" "$name"
docker manifest create "$package" --amend "$package"-amd64 --amend "$package"-arm64
docker manifest annotate --arch amd64 --os "$package" "$package"-amd64
docker manifest annotate --arch amd64 --os "$package" "$package"-arm64
docker manifest inspect "$package"
docker manifest push "$package"
}

readonly task="$1"
Expand All @@ -44,10 +39,7 @@ case "$task" in
prepare-environment)
prepare_env_for_build
;;
collect-digest)
collect_build_digest
;;
update-manifest)
push-merged-manifest)
merge_and_push_manifest
;;
*)
Expand Down

0 comments on commit d63bc90

Please sign in to comment.