Drone(5) 配置drone + nodejs 自动发布

 

​一 .  项目根目录,新建 .drone.yml 文件

pipeline:

  #加载缓存node_modules
  restore-cache:
    image: drillster/drone-volume-cache
    restore: true
    mount:
      - ./node_modules
    volumes:
      - /tmp/cache:/cache
    when:
      event: [ push, pull_request ] # 触发事件类型【push】,【pull_request】
      branch: [ master, release, devlopment ]#触发分支
      
  #install
  install:
    image: node:13.14.0-alpine3.10 #docker image
    commands:# 命令
      - rm -rf package-lock.json #删除文件
      - yarn install  # 也可以使用 npm install
    when:
      event: [ push, pull_request ]
      branch: [ master, release, devlopment ]

  #更新node_modules缓存
  rebuild-cache:
    image: drillster/drone-volume-cache
    rebuild: true
    mount:
      - ./node_modules
    volumes:
      - /tmp/cache:/cache
    when:
      event: [ push, pull_request ]
      branch: [ master, release, devlopment ]
      
  #build
  build:
    image: node:13.14.0-alpine3.10
    commands:
      - CI=false yarn run build
      - ls
    when:
      event: [ push, pull_request ]
      branch: [ master, release, devlopment ]
  
  #发布,UAT环境,使用scp传输文件夹
  deploy-uat:
    image: appleboy/drone-scp
    host:
      from_secret: UAT_IP # 来源 drone secret,关键信息隐藏
    port: 22
    username: root
    password:
      from_secret: UAT_PWD
    target: /home/www/admin-uat.iguo.tech  #目标文件夹
    source: build # 当前目录build文件夹
    rm: true
    when:
      event: [ push, pull_request ]
      branch: [ release ]
      
  #发布,prod环境
  deploy-prod:
    image: appleboy/drone-scp
    host:
      from_secret: UAT_IP
    port: 22
    username: root
    password:
      from_secret: UAT_PWD
    target: /home/www/admin.iguo.tech
    source: build
    rm: true
    when:
      event: [ push, pull_request ]
      branch: [ master ]

   pipeline 编写样例:http://plugins.drone.io/

二. drone 平台配置

三. 创建 drone Secrets

四. 配置分支保护

      4.1 规范代码分支管理,本地开发使用feature 分支

      4.2 devlopment 编译判断代码是否出错,或发布 dev环境

      4.3 release 分支 对应 UAT 环境,不允许push提交,仅限于从devlopment分支合并;

      4.2 master 分支对应PROD环境,不允许push提交,仅限于从release分支合并;

      4.5 gitea 配置分支保护

     

     

    

 

五. Push 或 pull request 就会触发 drone 

    5.1. push 方式触发

    

 

 

  5.2 pull request 方式触发

 

 

上一篇:Drone(4) Centos docker 部署 drone

总纲 : 持续发布- Drone CI / CD 集成

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值