@@ -92,10 +92,21 @@ jobs:
9292 run : |
9393 IMAGE="$(yq '.name' rockcraft.yaml)"
9494 VERSION="$(yq '.version' rockcraft.yaml)"
95- ls *.rock
96- ROCK="$(ls *.rock | tail -n 1)"
9795 ORG_NAME=$(echo "${ORG}" | tr '[:upper:]' '[:lower:]')
98- sudo rockcraft.skopeo --insecure-policy copy oci-archive:"${ROCK}" docker-daemon:"${ORG_NAME}/${IMAGE}:${VERSION}-edge"
96+ # Upload each rock to the container registry
97+ declare -a digests=()
98+ for rock in *.rock; do
99+ digest=$(rockcraft.skopeo --insecure-policy inspect "oci-archive:${rock}" --format "{{ .Digest }}")
100+ digests+=($digest)
101+ rockcraft.skopeo --insecure-policy copy oci-archive:${rock} docker-daemon:"${ORG_NAME}/${IMAGE}:${digest}"
102+ done
103+ # Create and upload a multi-arch manifest
104+ args=("manifest" "create" "${multi_arch_image_name}")
105+ for digest in "${digests[@]}"; do
106+ args+=(--amend "${target_image}@${digest}")
107+ done
108+ docker "${args[@]}"
109+ manifest=$(docker manifest push ${ORG_NAME}/${IMAGE}:${VERSION}-edge)
99110 # Push to Docker Hub
100111 # docker tag ${ORG_NAME}/${IMAGE}:${VERSION}-edge ${USERNAME}:${VERSION}-edge
101112 # docker push ${USERNAME}/${IMAGE}:${VERSION}-edge
@@ -116,9 +127,21 @@ jobs:
116127 run : |
117128 IMAGE="$(yq '.name' rockcraft.yaml)"
118129 VERSION="$(yq '.version' rockcraft.yaml)"
119- ROCK="$(ls *.rock | tail -n 1)"
120130 ORG_NAME=$(echo "${ORG}" | tr '[:upper:]' '[:lower:]')
121- sudo rockcraft.skopeo --insecure-policy copy oci-archive:"${ROCK}" docker-daemon:"${ORG_NAME}/${IMAGE}:${VERSION}-stable"
131+ # Upload each rock to the container registry
132+ declare -a digests=()
133+ for rock in *.rock; do
134+ digest=$(rockcraft.skopeo --insecure-policy inspect "oci-archive:${rock}" --format "{{ .Digest }}")
135+ digests+=($digest)
136+ rockcraft.skopeo --insecure-policy copy oci-archive:${rock} docker-daemon:"${ORG_NAME}/${IMAGE}:${digest}"
137+ done
138+ # Create and upload a multi-arch manifest
139+ args=("manifest" "create" "${multi_arch_image_name}")
140+ for digest in "${digests[@]}"; do
141+ args+=(--amend "${target_image}@${digest}")
142+ done
143+ docker "${args[@]}"
144+ manifest=$(docker manifest push ${ORG_NAME}/${IMAGE}:${VERSION}-stable)
122145 # Push to Docker Hub
123146 # docker tag ${ORG_NAME}/${IMAGE}:${VERSION}-stable ${USERNAME}:${VERSION}-stable
124147 # docker push ${USERNAME}/${IMAGE}:${VERSION}-stable
0 commit comments