kind: pipeline
name: default
steps:
- name: build
image: golang:latest
environment:
GOPROXY: https://goproxy.cn,direct
commands:
- pwd
- go version
- go get -u github.com/swaggo/swag/cmd/swag
- swag init
- CGO_ENABLED=0 go build -o main
- echo "build project success"
when:
event: push
branch: [ develop,master ]
# 定制镜像,镜像发布
- name: structure
image: plugins/docker
settings:
dockerfile: Dockerfile
registry: registry.cn-hangzhou.aliyuncs.com
repo: registry.cn-hangzhou.aliyuncs.com/yiui/shoptool
username: username
password: 123456
tags:
- 'latest'
insecure: true
volumes:
- name: docker
path: /var/run/docker.sock
# 启动容器
# - name: rancher-deploy
# image: pelotech/drone-rancher # drone-rancher插件,利用此插件来启动rancher
# settings:
# url: 'rancher-server:port'
# access_key: username
# secret_key: 123456
# service: yiui/shoptool
# docker_image: registry.cn-hangzhou.aliyuncs.com/yiui/shoptool:latest # 镜像地址及版本号
# start_first: false
# confirm: true
# timeout: 305
# volumes:
# - name: docker
# host:
# path: /var/run/docker.sock
# when:
# branch: master
#开发环境
- name: dev scp files
image: appleboy/drone-scp
settings:
host: 192.168.10.163
username: dever
password: dever
port: 22
target: /www/shop
source:
- main
- config
- shell_restart.sh
script:
- echo "copy file success"
when:
event: push
branch: develop
#部署正式环境
- name: prod scp files
image: appleboy/drone-scp
settings:
host: 192.168.10.202
username: dever
password: dever
port: 22
target: /www/shop
source:
- main
- config
- docker_restart.sh
- Dockerfile
script:
- echo "copy file success"
when:
event: push
branch: master
#测试环境
- name: dev ssh commands
image: appleboy/drone-ssh
settings:
host: 192.168.10.163
username: dever
password: dever
port: 22
script_stop: true
command_timeout: 5m
script:
- pwd
- cd /www/shop
- pwd
- ls -al
- chmod +x shell_restart.sh
- ./shell_restart.sh 9999
when:
event: push
branch: develop
#正式环境
- name: prod ssh commands
image: appleboy/drone-ssh
settings:
host: 192.168.10.202
username: dever
password: dever
port: 22
script_stop: true
command_timeout: 3m
script:
- pwd
- cd /www/shop
- chmod +x docker_restart.sh
#端口,镜像 容器
- ./docker_restart.sh 9999:9999 yiui/shop shop
- echo "everything is fine "
when:
event: push
branch: master
#钉钉通知
- name: dingtalk
image: lddsb/drone-dingtalk-message
settings:
token: 59f6e8e74531f44db1a30e55ec01cb2908dc2afb19071db65
type: markdown
message_color: true
message_pic: true
sha_link: true
secret: SEC78a04ba07c1009467a756186f4229b217aa8e6333769cecafd09d14bb4509
when: #执行条件
status:
# - success
- changed
- failure
branches: [ develop,master ]