kind: pipeline type: docker name: test-pipeline # 关闭自动设置Git镜像 # 此处可以不设置,将获取最新的git镜像 clone: disable: true steps: # 设置Git镜像版本,下载仓库文件 # 如果上面没有设置clone,此处需要删除(如果不删除,在pipeline中将多一个clone,pipeline会出错) - name: clone image: drone/git:1.2.1 # 构建和编译Java项目 - name: test-build image: maven:3.8.4 volumes: # Maven缓存目录 - name: mvn-cache path: /root/.m2 # 在Docker容器内执行的命令 commands: - mvn clean install # 发布项目 - name: test-deploy image: appleboy/drone-ssh:1.6.4 settings: # 部署主机的IP host: 192.168.108.200 # 部署主机的登录账号,需从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目录) - cd /home/app # 删除jar包,我测试的工程名是test # - rm -rf test.0.0.1-SNAPSHOT.jar # 将编译后的jar包复制到"/home/app"下 - cp /home/mvn/.m2/repository/com/example/test/0.0.1-SNAPSHOT/test-0.0.1-SNAPSHOT.jar . # 执行"/home/app"下的脚本(注意:需要在“/home/app”目录下创建start.sh文件) # - sh start.sh # 挂载宿主机目录,对应"test-build"的Maven容器的目录 volumes: - name: mvn-cache host: path: /home/mvn/.m2 # 对应Gogs仓库分支 trigger: branch: - master