一、需求背景
Drone已经可以与Gogs集成,且测试可以正常构建,现在需要执行后续的自动部署操作。
二、具体实现
编写.drone.yml脚本文件
kind: pipelinetype: dockername: test-pipeline# #关闭自动设置Git镜像# 此处可以不设置,将获取最新的git镜像clone:disable: truesteps:image: drone/git:1.2.1# 构建和编译Java项目image: maven:3.8.4volumes:# Maven缓存目录path: /root/.m2# 在Docker容器内执行的命令commands:# 发布项目image: appleboy/drone-ssh:1.6.4settings:## 部署主机的IPhost: 192.168.3.66# 部署主机的登录账号,需从Drone中获取密钥名ssh_user的值,创建方式见下面username:from_secret: ssh_user# 部署主机的登录密码,需从Drone中获取密钥名ssh_pwd的值,创建方式见下面password:from_secret: ssh_pwd# 端口号port: 22## 设置超时command_timeout: 10m# 编写脚本,可根据具体情况编写script:# 进入宿主机的“/home/app”目录(注意:先在宿主机上创建app目录)# 删除jar包,我测试的工程名是test# 将编译后的jar包复制到"/home/app"下# 执行"/home/app"下的脚本(注意:需要在“/home/app”目录下创建start.sh文件)## 挂载宿主机目录,对应"test-build"的Maven容器的目录volumes:host:path: /home/mvn/.m2## 对应Gogs仓库分支trigger:branch:

编写start.sh启动脚本
cd /home/appps aux | grep java | grep my_test-0.0.1-SNAPSHOT.jar |grep -v grep | awk '{print $2}'| xargs kill -9/usr/local/java/bin/java -jar my_test-0.0.1-SNAPSHOT.jar &
更新代码后,验证可以执行自动构建。

