kind: pipeline type: docker name: default platform: os: linux arch: amd64 steps: - name: 测试服-依赖安装&&编译打包 pull: if-not-exists image: node:20-alpine when: branch: - test commands: - npm config set registry https://registry.npmmirror.com/ - npm install -g pnpm - pnpm install - pnpm build:test - rm -rf dist.tar - rm -rf node_modules - tar -zcvf dist.tar ./dist ./default.conf ./Dockerfile - name: 正式服-依赖安装&&编译打包 pull: if-not-exists image: node:20-alpine when: branch: - main commands: - npm config set registry https://registry.npmmirror.com/ - npm install -g pnpm - pnpm install - pnpm build:prod - rm -rf dist.tar - rm -rf node_modules - tar -zcvf dist.tar ./dist ./default.conf ./Dockerfile - name: 测试服-产物上传 pull: if-not-exists image: appleboy/drone-scp when: branch: - test settings: host: from_secret: HOST_DEV username: from_secret: USER_DEV password: from_secret: PWD_DEV port: 22 strip_components: 1 target: /www/builder source: - ./dist.tar - name: 测试服-部署 pull: if-not-exists image: appleboy/drone-ssh when: branch: - test settings: host: from_secret: HOST_DEV username: from_secret: USER_DEV password: from_secret: PWD_DEV port: 22 script: - cd /www/builder - mkdir jdt-mer-dev - tar -xzvf dist.tar -C /www/builder/jdt-mer-dev - rm -rf dist.tar - cd jdt-mer-dev - docker build -t jdt-mer-dev . - docker stop jdt-mer-dev - docker rm jdt-mer-dev - docker run -d -p 8083:80 --restart=always --name jdt-mer-dev jdt-mer-dev - cd .. - rm -rf jdt-mer-dev - name: 正式服-产物上传 pull: if-not-exists image: appleboy/drone-scp when: branch: - main settings: host: from_secret: HOST_PROD username: from_secret: USER_PROD password: from_secret: PWD_PROD port: 22 strip_components: 1 target: /www/builder source: - ./dist.tar - name: 正式服-部署 pull: if-not-exists image: appleboy/drone-ssh when: branch: - main settings: host: from_secret: HOST_PROD username: from_secret: USER_PROD password: from_secret: PWD_PROD port: 22 script: - cd /www/builder - mkdir jdt-mer-prod - tar -xzvf dist.tar -C /www/builder/jdt-mer-prod - rm -rf dist.tar - cd jdt-mer-prod - docker build -t jdt-mer-prod . - docker stop jdt-mer-prod - docker rm jdt-mer-prod - docker run -d -p 8083:80 --restart=always --name jdt-mer-prod jdt-mer-prod - cd .. - rm -rf jdt-mer-prod - name: 企业微信通知 pull: if-not-exists image: plugins/webhook when: branch: - test - main status: - success - failure settings: urls: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=a2065e21-4f92-4f5b-a432-2c0cd1d965b5 content_type: application/json template: | { "msgtype": "markdown", "markdown": { "content": "{{#success build.status}}✅{{else}}❌{{/success}}**{{ repo.owner }}/{{ repo.name }}** (Build #{{build.number}})\n >**构建结果**: {{ build.status }} >**构建详情**: [点击查看]({{ build.link }}) >**代码分支**: {{ build.branch }} >**提交标识**: {{ build.commit }} >**提交发起**: {{ build.author }} >**提交信息**: {{ build.message }} " } }