diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6e2395d..46d00a2f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,6 +58,7 @@ jobs: type=ref,event=pr type=raw,value={{tag}},enable=${{ github.ref_type == 'tag' && ! startsWith(github.ref_name, 'v') }} type=match,pattern=v(\d{4}\.\d{4}(-.+)?),group=1 + type=sha - name: Generate docker-bake meta file. env: BAKE_TEMPLATE_META: ${{ steps.meta.outputs.bake-file }} @@ -79,9 +80,13 @@ jobs: env: BAKE_TEMPLATE_META: ${{ steps.meta.outputs.bake-file }} run: | - targets = $(echo ${BAKE_TEMPLATE_META} | jq -c '.target | [to_entries[] | {"key": (.key|split("-")[:-1] | join("-"))}] | from_entries | keys') + cat ${BAKE_TEMPLATE_META} | jq -c \ + | .github/workflows/merge-bake-template-target.sh \ + | jq -c '.target | [to_entries[] | {"key": (.key|split("-")[:-1] | join("_")), "value": [.value.tags[]][1]}] | from_entries' \ + | tee bake-meta.json + targets=$(echo $(cat bake-meta.json | jq -c 'keys')) echo "targets=$targets" >> "${GITHUB_OUTPUT}" - images=$(echo $(BAKE_TEMPLATE_META) | jq -c '.target | [to_entries[] | {"key": (.key|split("-")[:-1] | join("-") | ascii_upcase | sub("-"; "_"; "g") + "_IMAGE"), "value": [.value.tags[], .value.labels."org.opencontainers.image.revision"] | join("@")}] | from_entries' + images=$(echo $(cat bake-meta.json | jq -c '. | [to_entries[] | {"key": (.key|ascii_upcase + "_IMAGE"), "value": .value}] | from_entries')) echo "images=$images" >> "${GITHUB_OUTPUT}" test: diff --git a/bake-meta.json b/bake-meta.json index c2def738..9c4efd76 100644 --- a/bake-meta.json +++ b/bake-meta.json @@ -327,4 +327,4 @@ "containerimage.digest": "sha256:01bb6d4555aad95fc571d5d584a045608f19ec238b6b11012c904976e998f002", "image.name": "ghcr.io/aiidalab/lab:pr-372" } - } \ No newline at end of file + } diff --git a/bake-temp-meta.json b/bake-temp-meta.json index 5eee92ec..e4aab2e0 100644 --- a/bake-temp-meta.json +++ b/bake-temp-meta.json @@ -77,4 +77,4 @@ } } } - } \ No newline at end of file + }