From abb14c35a6ad4cab808977be7274758312defd5a Mon Sep 17 00:00:00 2001 From: MYJ Date: Wed, 26 Feb 2025 22:06:18 +0800 Subject: [PATCH] 11 --- .gitea/workflows/deploy-k8s.yaml | 93 ++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .gitea/workflows/deploy-k8s.yaml diff --git a/.gitea/workflows/deploy-k8s.yaml b/.gitea/workflows/deploy-k8s.yaml new file mode 100644 index 0000000..2b7d3b9 --- /dev/null +++ b/.gitea/workflows/deploy-k8s.yaml @@ -0,0 +1,93 @@ +name: deploy k8s + +on: + push: + branches: + - dev + pull_request: + types: + - closed # 监听合并请求关闭事件 + +env: + DOTNET_VERSION: 8.x + +jobs: + Explore-Gitea-Actions: + runs-on: home + steps: + - name: 输出事件信息 + run: | + echo "event_name=${{ gitea.event_name }}" + echo "event.action=${{ gitea.event.action }}" + echo "merged=${{ gitea.event.pull_request.merged }}" + echo "gitea.ref=${{ gitea.ref }}" + echo "gitea.base.ref=${{ gitea.event.pull_request.base.ref }}" + + - uses: actions/checkout@v3 + - name: 列出仓库中的文件 + run: ls ${{ github.workspace }} + - name: 设置 .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: ${{ env.DOTNET_VERSION }} + cache: true + - name: 安装依赖 + run: dotnet restore -s https://api.nuget.org/v3/index.json + - name: 构建 + run: dotnet build --configuration Release --no-restore -o dst + - name: 测试 + run: dotnet test --no-restore --verbosity normal + + - name: 列出构建输出目录中的文件 + run: ls ${{ github.workspace }}/dst + - name: 设置 QEMU + uses: docker/setup-qemu-action@v3 + - name: 设置 Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: 登录到阿里云容器镜像服务 + uses: docker/login-action@v3 + with: + registry: registry.cn-guangzhou.aliyuncs.com + username: ${{ secrets.DOCKERHUB_NROP_USERNAME }} + password: ${{ secrets.DOCKERHUB_NROP_PASSWORD }} + - name: 构建并推送 Docker 镜像 + uses: docker/build-push-action@v6 + with: + context: . + platforms: linux/amd64 + push: true + tags: registry.cn-guangzhou.aliyuncs.com/acme_nrop/dotnet-deploy-k8s:${{ github.sha }} + + - name: 部署到测试环境 + if: ${{ gitea.ref == 'refs/heads/dev' }} + uses: steebchen/kubectl@v2.0.0 + with: + config: ${{ secrets.KUBE_CONFIG_TEST }} + command: set image --record deployment/dotnet-cicd-k8s-sample dotnet-deploy-k8s=registry.cn-guangzhou.aliyuncs.com/acme_nrop/dotnet-deploy-k8s:${{ github.sha }} + - name: 验证测试环境部署 + if: ${{ gitea.ref == 'refs/heads/dev' }} + uses: steebchen/kubectl@v2.0.0 + with: + config: ${{ secrets.KUBE_CONFIG_TEST }} + command: rollout status deployment/dotnet-cicd-k8s-sample + + - name: 部署到生产环境 + if: > + gitea.event_name == 'pull_request' && + gitea.event.action == 'closed' && + gitea.event.pull_request.merged == true && + gitea.event.pull_request.base.ref == 'main' + uses: steebchen/kubectl@v2.0.0 + with: + config: ${{ secrets.KUBE_CONFIG_PROD }} + command: set image --record deployment/dotnet-cicd-k8s-sample dotnet-deploy-k8s=registry.cn-guangzhou.aliyuncs.com/acme_nrop/dotnet-deploy-k8s:${{ github.sha }} + - name: 验证生产环境部署 + if: > + gitea.event_name == 'pull_request' && + gitea.event.action == 'closed' && + gitea.event.pull_request.merged == true && + gitea.event.pull_request.base.ref == 'main' + uses: steebchen/kubectl@v2.0.0 + with: + config: ${{ secrets.KUBE_CONFIG_PROD }} + command: rollout status deployment/dotnet-cicd-k8s-sample \ No newline at end of file