当前位置:   article > 正文

Drone+Gitee自动执行构建、测试和发布工作流_drone gitee

drone gitee

拉取Drone:(至于版本,你可以下载最新的)

sudo docker pull drone/drone:2

拉取runner:

sudo docker pull drone/drone-runner-docker

在Gitee中添加第三方应用:

进入个人主页,点击设置:

 往下翻,找到数据管理中的第三方应用

 点击创建应用:

 【注意】:应用主页需要配置成后续启动Drone服务时配置的服务地址DRONE_SERVER_HOST 配置的地址,需要公网IP或域名,回调地址要将上/login,只是固定写法

如果是部署在局域网服务器上,没有公网,可以参考我另一篇文章,将drone的服务端口映射到公网IP上如何跨局域网访问服务?内网穿透、组网-CSDN博客

可以上传你项目的logo,

权限根据自己实际情况设置:

 由于运行drone和runner的命令很长,不方便,我这里就使用docker-compose,你可以用ChatGPT去转,Client ID和Client Secret环境变量添应用中的对应值

  1. version: '3'
  2. services:
  3. drone:
  4. image: drone/drone:2
  5. container_name: drone
  6. restart: always
  7. environment:
  8. - DRONE_GITEE_CLIENT_ID=a186dffa02ca55ffe934f243b76add6e16a74e
  9. - DRONE_GITEE_CLIENT_SECRET=c377c209f2defa6980fbacbe0fae2f4eb8c9dcca00acd4
  10. - DRONE_SERVER_HOST=公网IP或域名:4321 ####(drone服务器地址)端口为内网映射到外网的地址
  11. - DRONE_SERVER_PROTO=http ###(http协议)
  12. - DRONE_RPC_SECRET=demo_drone
  13. - DRONE_USER_CREATE=username:Jungle,admin:true #应在启动时创建的可选用户帐户。这应该用于为系统提供管理帐户。
  14. - DRONE_GIT_USERNAME=root
  15. - DRONE_GIT_PASSWORD=2c3072c307
  16. - TZ=Asia/Shanghai
  17. ports:
  18. - 4321:80
  19. volumes:
  20. - ./drone_data:/data
  21. runner:
  22. image: drone/drone-runner-docker
  23. container_name: runner
  24. restart: always
  25. environment:
  26. - DRONE_RPC_PROTO=http
  27. - DRONE_RPC_HOST=172.20.3.12:4321 #drone访问地址
  28. - DRONE_RPC_SECRET=demo_drone ####(与server端一致即可)
  29. - DRONE_RUNNER_CAPACITY=4 #可选数字值。限制运行器可以执行的并发管道数。这不会限制可以在单个节点上执行的并发管道数。
  30. - DRONE_RUNNER_NAME=runner
  31. - TZ=Asia/Shanghai
  32. - DRONE_DEBUG=true
  33. - DRONE_TRACE=true
  34. ports:
  35. - "3001:3000"
  36. volumes:
  37. - /var/run/docker.sock:/var/run/docker.sock
  38. depends_on:
  39. - drone

更多详细配置:Reference | Drone

启动后访问Drone访问地址,ip加端口,也可以访问映射的公网地址,选择你要自动部署的项目,点击ACTIVATE REPOSITORY

 点击NEW BUILD

项目根目录下添加 .drone.yml 文件,文件内容(Java后端示例):Yaml | Drone
参考文章;https://www.cnblogs.com/yg0070/articles/17958795#%E5%9C%A8gitee%E4%B8%AD%E5%88%9B%E5%BB%BA%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E6%8E%88%E6%9D%83

  1. kind: pipeline # 定义对象类型,还有secret和signature两种类型
  2. type: docker # 定义流水线类型,还有kubernetes、exec、ssh等类型
  3. name: jar-deploy # 定义流水线名称
  4. steps: # 定义流水线执行步骤,这些步骤将顺序执行
  5. - name: build-package # 流水线名称
  6. image: maven:3.8.6-openjdk-11 # 定义创建容器的Docker镜像
  7. volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置
  8. - name: maven-cache
  9. path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载
  10. - name: maven-build
  11. path: /app/build # 将应用打包好的Jar和执行脚本挂载出来
  12. commands: # 定义在Docker容器中执行的shell命令
  13. - mvn clean package -Pprod # 应用打包命令
  14. - mkdir -p /app/build/old
  15. - cp -r /app/build/*.jar /app/build/old/
  16. - cp -r smart-admin/target/smart-plus.jar /app/build/
  17. when:
  18. branch: [ master, main, release, develop ]
  19. - name: restart
  20. image: docker:dind
  21. volumes:
  22. - name: dockersock
  23. path: /var/run/docker.sock
  24. commands:
  25. - docker restart server
  26. when:
  27. branch: [ main, master, release, develop ]
  28. volumes: # 定义流水线挂载目录,用于共享数据
  29. - name: dockersock
  30. host:
  31. path: /var/run/docker.sock
  32. - name: maven-build
  33. host:
  34. path: /home/teacher/software/smart-docker/jar # 从宿主机中挂载的目录
  35. - name: maven-cache
  36. host:
  37. path: /root/.m2

 推送代码测试一下:

 可以看到:正在部署中(第一次运转会比较慢)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/772487
推荐阅读
相关标签
  

闽ICP备14008679号