一 . 项目根目录,新建 .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