采用Drone工具结合Gogs自动构建jar包并部署启动的相关操作【测试成功】

艺帆风顺 发布于 2025-04-03 17 次阅读


一、需求背景

    Drone已经可以与Gogs集成,且测试可以正常构建,现在需要执行后续的自动部署操作。

二、具体实现

    编写.drone.yml脚本文件

    kind: pipelinetype: dockername: test-pipeline
    # #关闭自动设置Git镜像# 此处可以不设置,将获取最新的git镜像clone: disable: true
    steps:- name: 更新程序源码 image: drone/git:1.2.1
    # 构建和编译Java项目- name: 执行自动构建【CI】 image: maven:3.8.4 volumes: # Maven缓存目录 - name: mvn-cache path: /root/.m2
    # 在Docker容器内执行的命令 commands: - mvn clean install
    # 发布项目- name: 自动部署启动【CD】 image: appleboy/drone-ssh:1.6.4 settings: ## 部署主机的IP host: 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目录) - cd /home/app # 删除jar包,我测试的工程名是test - rm -rf my_test-0.0.1-SNAPSHOT.jar # 将编译后的jar包复制到"/home/app"下 - cp /home/mvn/.m2/repository/com/sg/my_test/0.0.1-SNAPSHOT/my_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

    编写start.sh启动脚本

      #!/bin/shcd /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 &                                                                                                 

      更新代码后,验证可以执行自动构建。