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(5) 配置drone + nodejs 自动发布_第1张图片

Drone(5) 配置drone + nodejs 自动发布_第2张图片

三. 创建 drone Secrets

Drone(5) 配置drone + nodejs 自动发布_第3张图片

四. 配置分支保护

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

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

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

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

      4.5 gitea 配置分支保护

     

    Drone(5) 配置drone + nodejs 自动发布_第4张图片 

    Drone(5) 配置drone + nodejs 自动发布_第5张图片

 

五. Push 或 pull request 就会触发 drone 

    5.1. push 方式触发

    

 

 Drone(5) 配置drone + nodejs 自动发布_第6张图片

  5.2 pull request 方式触发

Drone(5) 配置drone + nodejs 自动发布_第7张图片

 

 

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

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

 

你可能感兴趣的:(环境搭建)