From 7bc15e7e9dc1e28bd911f084a61826031504b0b6 Mon Sep 17 00:00:00 2001 From: xiaoliutral Date: Wed, 2 Sep 2026 17:45:46 +0800 Subject: [PATCH] Update master.yml --- .github/workflows/master.yml | 61 ++++++++++++++---------------------- 1 file changed, 24 insertions(+), 37 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 140f127..d4d7b80 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -1,5 +1,6 @@ -# 复制到 itfx 仓库: .github/workflows/deploy.yml -# Secrets: TCR_USERNAME, TCR_PASSWORD, SSH_HOST(42), SSH_USERNAME, SSH_PASSWORD +# 复制到 itfx: .github/workflows/deploy.yml +# Secrets: SSH_HOST(42), SSH_USERNAME, SSH_PASSWORD +# 集群: ./scripts/16-setup-kaniko.sh name: Build and Deploy on: @@ -7,52 +8,38 @@ on: branches: [master] env: - TCR_REGISTRY: ccr.ccs.tencentyun.com - TCR_NAMESPACE: ideship + GIT_URL: https://github.com/xiaoliutral/itfx.git + DOCKERFILE: src/InterfaceForward.Api/Dockerfile IMAGE_NAME: interfaceforward_api DEPLOY_NAME: interfaceforward-api CONTAINER_NAME: interfaceforward-api - DOCKERFILE: src/InterfaceForward.Api/Dockerfile + TCR_REGISTRY: ccr.ccs.tencentyun.com + TCR_NAMESPACE: ideship jobs: - build-deploy: + deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - - uses: docker/setup-buildx-action@v3 - - - name: Login to TCR - uses: docker/login-action@v3 - with: - registry: ${{ env.TCR_REGISTRY }} - username: ${{ secrets.TCR_USERNAME }} - password: ${{ secrets.TCR_PASSWORD }} - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - file: ${{ env.DOCKERFILE }} - push: true - tags: | - ${{ env.TCR_REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ github.sha }} - ${{ env.TCR_REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:latest - # 👇 关键:开启缓存,复用 Docker 各层 - cache-from: type=gha - cache-to: type=gha,mode=max - # 👇 配置镜像加速(国内必选) - build-args: | - BUILDKIT_DOCKER_REGISTRY_MIRROR=https://mirror.ccs.tencentyun.com - - - name: Deploy to k3s + - name: Kaniko build + deploy uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} password: ${{ secrets.SSH_PASSWORD }} script: | + set -e export KUBECONFIG=/etc/rancher/k3s/k3s.yaml - IMG="${{ env.TCR_REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:${{ github.sha }}" - kubectl -n prod set image deploy/${{ env.DEPLOY_NAME }} ${{ env.CONTAINER_NAME }}="$IMG" - kubectl -n prod rollout status deploy/${{ env.DEPLOY_NAME }} --timeout=180s + cd /data/k3s + TAG="${{ github.sha }}" + IMG="${{ env.TCR_REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:${TAG}" + + ./scripts/ci-kaniko-build.sh \ + "${{ env.GIT_URL }}" \ + "${{ env.DOCKERFILE }}" \ + "${{ env.IMAGE_NAME }}" \ + "${TAG}" \ + "${TAG}" + + kubectl -n prod set image "deploy/${{ env.DEPLOY_NAME }}" \ + "${{ env.CONTAINER_NAME }}=${IMG}" + kubectl -n prod rollout status "deploy/${{ env.DEPLOY_NAME }}" --timeout=180s