kind: pipeline type: docker name: build-and-deploy-dev trigger: event: - push branch: - dev 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-test/todo-frontend tags: - {{ .Commit SHA }} - 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: 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: keys: - npm-{{ .Environment.DRONE_REPO_NAME }}-{{ checksum "package.json" }} - npm-{{ .Environment.DRONE_REPO_NAME }}-