From 8d1f0d4f47951786da8fcd210b529bbf2fbb9fd8 Mon Sep 17 00:00:00 2001 From: Joe <1264204425@qq.com> Date: Wed, 18 Dec 2024 17:32:24 +0800 Subject: [PATCH] feat: update create-manifest --- .github/workflows/build-push.yml | 85 +++++++++++++++++--------------- 1 file changed, 46 insertions(+), 39 deletions(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index cf8cd97a59..632e537433 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -99,42 +99,49 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'langgenius/dify' strategy: - matrix: - include: - - service_name: "merge-api-images" - image_name_env: "DIFY_API_IMAGE_NAME" - context: "api" - - service_name: "merge-web-images" - image_name_env: "DIFY_WEB_IMAGE_NAME" - context: "web" - steps: - - name: Download digests - uses: actions/download-artifact@v4 - with: - path: /tmp/digests - pattern: digests-${{ matrix.context }}-* - merge-multiple: true - - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ env.DOCKERHUB_USER }} - password: ${{ env.DOCKERHUB_TOKEN }} - - - name: Extract metadata for Docker - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env[matrix.image_name_env] }} - tags: | - type=raw,value=${{ env.DOCKER_TAG }},enable=true - - - name: Create manifest list and push - working-directory: /tmp/digests - run: | - docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ - $(printf '${{ env[matrix.image_name_env] }}@sha256:%s ' $(cat /tmp/digests/*)) - - - name: Inspect image - run: | - docker buildx imagetools inspect ${{ env[matrix.image_name_env] }}:${{ env.DOCKER_TAG }} + matrix: + include: + - service_name: "merge-api-images" + image_name_env: "DIFY_API_IMAGE_NAME" + context: "api" + - service_name: "merge-web-images" + image_name_env: "DIFY_WEB_IMAGE_NAME" + context: "web" + steps: + - name: Download digests + uses: actions/download-artifact@v4 + with: + path: /tmp/digests + pattern: digests-${{ matrix.context }}-* + merge-multiple: true + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ env.DOCKERHUB_USER }} + password: ${{ env.DOCKERHUB_TOKEN }} + + - name: Extract metadata for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env[matrix.image_name_env] }} + tags: | + type=raw,value=${{ env.DOCKER_TAG }},enable=true + + - name: Create manifest list and push + working-directory: /tmp/digests + run: | + # 获取所有 digest 文件内容 + digests=$(cat /tmp/digests/*) + echo "Digest: $digests" + + # 创建并推送 manifest list,使用 DOCKER_TAG 作为标签 + docker buildx imagetools create \ + -t ${{ env[matrix.image_name_env] }}:${{ env.DOCKER_TAG }} \ + ${matrix.image_name_env}@sha256:$digests + + - name: Inspect image + run: | + docker buildx imagetools inspect ${{ env[matrix.image_name_env] }}:${{ env.DOCKER_TAG }} + \ No newline at end of file