From 708ea4686ed4fe65c4003fc3620be653db5e9405 Mon Sep 17 00:00:00 2001 From: OG T Date: Wed, 25 Mar 2026 16:02:44 +0800 Subject: [PATCH] =?UTF-8?q?fix(cd):=20=E4=BF=AE=E5=BE=A9=20Build=20?= =?UTF-8?q?=E8=B7=B3=E9=81=8E=E6=99=82=E7=9A=84=20ImagePullBackOff=20?= =?UTF-8?q?=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 問題: 當 Build Web/API 被跳過時,Deploy 仍更新 image tag 到不存在的版本 解決: 根據 build job 結果條件性更新 image Co-Authored-By: Claude Opus 4.5 --- .github/workflows/cd.yaml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml index b564d1664..9caf0f1ff 100644 --- a/.github/workflows/cd.yaml +++ b/.github/workflows/cd.yaml @@ -222,9 +222,25 @@ jobs: - name: Deploy run: | cd k8s/awoooi-prod - kustomize edit set image \ - "192.168.0.110:5000/library/web:IMAGE_TAG_PLACEHOLDER=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-web:${{ steps.tag.outputs.tag }}" \ - "192.168.0.110:5000/library/api:IMAGE_TAG_PLACEHOLDER=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-api:${{ steps.tag.outputs.tag }}" + TAG="${{ steps.tag.outputs.tag }}" + + # 只更新實際建構的 image (避免 ImagePullBackOff) + if [ "${{ needs.build-api.result }}" = "success" ]; then + echo "📦 更新 API image: ${{ env.IMAGE_PREFIX }}-api:${TAG}" + kustomize edit set image \ + "192.168.0.110:5000/library/api:IMAGE_TAG_PLACEHOLDER=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-api:${TAG}" + else + echo "⏭️ 跳過 API image 更新 (build skipped)" + fi + + if [ "${{ needs.build-web.result }}" = "success" ]; then + echo "📦 更新 Web image: ${{ env.IMAGE_PREFIX }}-web:${TAG}" + kustomize edit set image \ + "192.168.0.110:5000/library/web:IMAGE_TAG_PLACEHOLDER=${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}-web:${TAG}" + else + echo "⏭️ 跳過 Web image 更新 (build skipped)" + fi + kubectl apply -k . - name: Wait for rollout