From d21b35a02d2b5528f4c3eee9624e8b4e4d3753a2 Mon Sep 17 00:00:00 2001 From: Agent Date: Fri, 20 Mar 2026 14:29:31 +0000 Subject: [PATCH] Add K8s deployment in CI/CD --- .drone.yml | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 77 insertions(+), 6 deletions(-) diff --git a/.drone.yml b/.drone.yml index b5d20ea..288d02f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,11 +1,13 @@ kind: pipeline type: docker -name: build-and-push +name: build-and-deploy-dev trigger: event: - push + branch: + - dev steps: - name: restore-cache @@ -29,18 +31,87 @@ steps: - name: build-image image: plugins/docker settings: - repo: ccr.ccs.tencentyun.com/todo-{{ if eq .Branch "master" }}prod{{ else }}test{{ end }}/todo-frontend + repo: ccr.ccs.tencentyun.com/todo-test/todo-frontend tags: - {{ .Commit SHA }} - - {{ if eq .Branch "master" }}v1.0.0{{ else }}latest{{ end }} + - latest username: from_secret: registry_username password: from_secret: registry_password + + - name: deploy-to-k8s + image: bitnami/kubectl:latest + commands: + - kubectl set image deployment/todo-frontend todo-frontend=ccr.ccs.tencentyun.com/todo-test/todo-frontend:{{ .Commit SHA }} -n todo-test + - kubectl rollout status deployment/todo-frontend -n todo-test + environment: + KUBECONFIG: + from_secret: kubeconfig when: - branch: - - master - - dev + status: + - success + + - name: rebuild-cache + rebuild_cache: + keys: + - npm-{{ .Environment.DRONE_REPO_NAME }}-{{ checksum "package.json" }} + - npm-{{ .Environment.DRONE_REPO_NAME }}- + +--- +kind: pipeline +type: docker + +name: build-and-deploy-prod + +trigger: + event: + - push + branch: + - master + +steps: + - name: restore-cache + restore_cache: + keys: + - npm-{{ .Environment.DRONE_REPO_NAME }}-{{ checksum "package.json" }} + - npm-{{ .Environment.DRONE_REPO_NAME }}- + + - name: install + image: node:18-alpine + commands: + - npm install + cache_from: + - npm-{{ .Environment.DRONE_REPO_NAME }}-{{ checksum "package.json" }} + + - name: build + image: node:18-alpine + commands: + - npm run build:h5 + + - name: build-image + image: plugins/docker + settings: + repo: ccr.ccs.tencentyun.com/todo-prod/todo-frontend + tags: + - {{ .Commit SHA }} + - v1.0.0 + username: + from_secret: registry_username + password: + from_secret: registry_password + + - name: deploy-to-k8s + image: bitnami/kubectl:latest + commands: + - kubectl set image deployment/todo-frontend todo-frontend=ccr.ccs.tencentyun.com/todo-prod/todo-frontend:{{ .Commit SHA }} -n todo-prod + - kubectl rollout status deployment/todo-frontend -n todo-prod + environment: + KUBECONFIG: + from_secret: kubeconfig + when: + status: + - success - name: rebuild-cache rebuild_cache: