# ==========================================================
# B. 部署到 K3s
# ==========================================================
- name: Install kubectl
uses: azure/setup-kubectl@v3 # 安装 kubectl 命令行工具
- name: Configure Kubeconfig for K3s
run: |
# 解码 Kubeconfig Secret 并保存到文件
mkdir -p ~/.kube
echo "${{ secrets.KUBECONFIG_BASE64 }}" | base64 -d > ~/.kube/config
kubectl cluster-info # 验证连接
- name: Update Deployment Image Tag
run: |
# 方法一 (推荐): 使用 kubectl set image
# 这会直接与集群通信,并更新 image 字段,无需修改本地 YAML
kubectl set image deployment/learning-english-app \
app-container=l-docker.itfish.cn/project/learning-english-cloud-fn:${{ env.IMAGE_TAG }} \
--namespace default
# 方法二 (备选): 使用 patch 或 apply
# 如果您只更改了镜像标签,使用 kubectl set image 更简单。
# 如果您需要更改 YAML 文件中的其他内容,再考虑使用 apply 或 kustomize
# kubectl apply -f k8s/deployment.yaml
- name: Wait for Deployment Rollout
run: |
kubectl rollout status deployment/learning-english-app -n default