From 00c2c6a6c83c1ad01d78e197806a930f5e51d4c3 Mon Sep 17 00:00:00 2001 From: Shiming Zhang Date: Sat, 15 Jun 2024 21:42:55 +0800 Subject: [PATCH] Fix --- .github/workflows/target-image-sync.yml | 2 +- .github/workflows/target-sync-image.yml | 30 ++++++++++++++++--------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.github/workflows/target-image-sync.yml b/.github/workflows/target-image-sync.yml index 4d4303d..c77ab0f 100644 --- a/.github/workflows/target-image-sync.yml +++ b/.github/workflows/target-image-sync.yml @@ -34,7 +34,7 @@ jobs: gh issue close ${{ github.event.issue.number }} --reason "not planned" exit 1 fi - if [[ "${ORIGIN_IMAGE%%/*}" != *"."* ]]; then + if [[ "${ORIGIN_IMAGE%%/*}" != *"."* ]] || [[ "${ORIGIN_IMAGE}" != *"/"* ]]; then gh issue comment ${{ github.event.issue.number }} -b "镜像 ${ORIGIN_IMAGE} 不存在呢, 请指定域名, 如: docker.io/${ORIGIN_IMAGE}" gh issue edit ${{ github.event.issue.number }} --title "FAILED SYNC IMAGE" gh issue close ${{ github.event.issue.number }} --reason "not planned" diff --git a/.github/workflows/target-sync-image.yml b/.github/workflows/target-sync-image.yml index 7274fa0..379c853 100644 --- a/.github/workflows/target-sync-image.yml +++ b/.github/workflows/target-sync-image.yml @@ -18,27 +18,35 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - name: Check Issue + id: get-image + env: + IMAGE: "${{ github.event.issue.title }}" run: | - ORIGIN_IMAGE=$(echo ${{ github.event.issue.title }} | awk '{print $1}') - if [[ -z "${ORIGIN_IMAGE}" ]]; then - gh issue comment ${{ github.event.issue.number }} -b "找不到镜像呢" + ORIGIN_IMAGE="${IMAGE}" + if [[ "${ORIGIN_IMAGE}" == *"//"* ]] || [[ "${ORIGIN_IMAGE}" == *" "* ]]; then + gh issue comment ${{ github.event.issue.number }} -b "镜像 "${ORIGIN_IMAGE}" 不是一个镜像" + exit 1 + fi + if [[ "${ORIGIN_IMAGE%%/*}" != *"."* ]] || [[ "${ORIGIN_IMAGE}" != *"/"* ]]; then + if [[ "${ORIGIN_IMAGE}" != *":"* ]]; then + gh issue comment ${{ github.event.issue.number }} -b "镜像 "${ORIGIN_IMAGE}" 不存在呢, 请指定 域名 和 tag, 如: docker.io/${ORIGIN_IMAGE}:latest" + else + gh issue comment ${{ github.event.issue.number }} -b "镜像 "${ORIGIN_IMAGE}" 不存在呢, 请指定域名, 如: docker.io/${ORIGIN_IMAGE}" + fi exit 1 fi if [[ "${ORIGIN_IMAGE}" != *":"* ]]; then - gh issue comment ${{ github.event.issue.number }} -b "镜像 ${ORIGIN_IMAGE} 不存在呢, 请指定 tag, 如: ${ORIGIN_IMAGE}:latest" - exit 1 - fi - if [[ "${ORIGIN_IMAGE%%/*}" != *"."* ]]; then - gh issue comment ${{ github.event.issue.number }} -b "镜像 ${ORIGIN_IMAGE} 不存在呢, 请指定域名, 如: docker.io/${ORIGIN_IMAGE}" + gh issue comment ${{ github.event.issue.number }} -b "镜像 "${ORIGIN_IMAGE}" 不存在呢, 请指定 tag, 如: ${ORIGIN_IMAGE}:latest" exit 1 fi + echo "image=${ORIGIN_IMAGE}" >> $GITHUB_OUTPUT - name: Set up skopeo run: | wget https://github.com/lework/skopeo-binary/releases/download/v1.13.3/skopeo-linux-amd64 -O /usr/local/bin/skopeo && chmod +x /usr/local/bin/skopeo skopeo --version - name: Check Image run: | - ORIGIN_IMAGE=$(echo ${{ github.event.issue.title }} | awk '{print $1}') + ORIGIN_IMAGE="${{ steps.get-image.outputs.image }}" gh issue comment ${{ github.event.issue.number }} -b "镜像 ${ORIGIN_IMAGE} 同步中...
[详情请查看](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})" - name: Start Proxy env: @@ -58,7 +66,7 @@ jobs: http_proxy: socks5://127.0.0.1:8080 https_proxy: socks5://127.0.0.1:8080 run: | - ORIGIN_IMAGE=$(echo ${{ github.event.issue.title }} | awk '{print $1}') + ORIGIN_IMAGE="${{ steps.get-image.outputs.image }}" ./hack/diff-image.sh "${ORIGIN_IMAGE}" "m.daocloud.io/${ORIGIN_IMAGE}" gh issue comment ${{ github.event.issue.number }} -b "镜像 ${ORIGIN_IMAGE} 同步完成
请使用 m.daocloud.io/${ORIGIN_IMAGE} 替代源镜像" gh issue edit ${{ github.event.issue.number }} --add-label "sync image succeeded" -b "IMAGE SYNC" @@ -67,7 +75,7 @@ jobs: - name: Fail Sync if: failure() run: | - ORIGIN_IMAGE=$(echo ${{ github.event.issue.title }} | awk '{print $1}') + ORIGIN_IMAGE="${{ steps.get-image.outputs.image }}" gh issue comment ${{ github.event.issue.number }} -b "镜像 ${ORIGIN_IMAGE} 同步失败[详情请查看](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
请检查 image 是否存在, [查看成功例子](https://github.com/DaoCloud/public-image-mirror/issues?q=is%3Aissue+is%3Aclosed+label%3A%22sync+image+succeeded%22)
如有疑问请回复 /auto-cc 召唤帮助" gh issue edit ${{ github.event.issue.number }} --add-label "sync image failure" -b "IMAGE SYNC" gh issue close ${{ github.event.issue.number }} --reason "not planned"