Loading

gitea + drone CI/CD

gitea: Gitea Official Website

drone server: https://docs.drone.io/server/overview/

drone runner: https://docs.drone.io/runner/overview/

安装 drone server (基于 gitea)

文档: https://docs.drone.io/server/provider/gitea/

第一步, 在 gitea 添加 OAuth2 Applications

这里的 URL,填写 drone server 的部署地址. 域名/IP 都可以,如果是 docker 部署,这里不要写 127.0.0.1 这种回环地址,需要写 192.168 这类局域网地址.

记住 Client ID 和 Client Secret

第二步 Create a Shared Secret

openssl rand -hex 16
068a98df4700ad90ed646e1f716e42d9

第三步 docker 部署 drone server

docker pull drone/drone:2

docker-compose.yml

version: "3.8"

services:
  drone-server:
    image: drone/drone:2
    container_name: drone
    restart: always
    ports:
      - "33000:80"
      - "33001:443"
    volumes:
      - ./data:/data
    environment:
      - DRONE_GITEA_SERVER=http://192.168.50.106:3300/ # 替换为你的 Gitea 服务器地址
      - DRONE_GITEA_CLIENT_ID=75f3afac-d66e-410c-9262-ec1ad78cf7cb # 替换为你的 Gitea OAuth Client ID
      - DRONE_GITEA_CLIENT_SECRET=gto_hbdmxg2gfuifnqf3navblqmwlcwfbjyvhecyjk7bg44xua3v23ta # 替换为你的 Gitea OAuth Client Secret
      - DRONE_RPC_SECRET=068a98df4700ad90ed646e1f716e42d9 # 替换为你的 RPC Secret
      - DRONE_SERVER_HOST=192.168.50.106:30000 # 替换为你的外部主机名或 IP 地址
      - DRONE_SERVER_PROTO=http # 根据需要设置为 http 或 https

安装 drone runner (docker)

https://docs.drone.io/runner/docker/installation/linux/

version: '3.8'

services:
  runner:
    image: drone/drone-runner-docker:1
    container_name: runner
    restart: always
    ports:
      - "33100:3000"
    environment:
      - DRONE_RPC_PROTO=http # drone server 的部署协议
      - DRONE_RPC_HOST=192.168.50.106:33000 # drone server 的地址
      - DRONE_RPC_SECRET=068a98df4700ad90ed646e1f716e42d9 # rpc secret, 与 drone server 中的配置对应
      - DRONE_RUNNER_CAPACITY=2 # 可以并行执行的 runner 数量
      - DRONE_RUNNER_NAME=runner-docker1 # runner 名称
      - DRONE_RUNNER_LABELS=node1:docker1 # runner tag
      - DRONE_UI_USERNAME=root # UI 界面登录用户名
      - DRONE_UI_PASSWORD=root
      - DRONE_UI_DISABLE=false # 是否支持 http UI 界面,可以通过 ports 配置的端口来访问
      - DRONE_DEBUG=true
      - DRONE_TRACE=true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

安装 drone runner (exec)

drone-runners/drone-runner-exec: Experimental Drone pipeline runner that executes builds directly on the host machine

有个问题是, docker 中的 runner 只能基于 docker 虚拟环境来运行,有些场景需要基于本地原生的 Windows 来执行,这就需要 drone-runner-exec

https://docs.drone.io/runner/exec/installation/windows/

但是, drone-runner-exec 已经长时间不维护了,而且最后的版本,测试使用也没有成功.

有个思路是自己写一个来做中转.
在本地 Windows 运行一个服务,运行 docker runner,在 docker runner 中调用这个本地 Windows 运行的服务.
但是有点折腾.

使用

在代码仓库中,编写 .drone.yml (也可以自定义,在 drone 中配置)

posted @ 2025-03-22 11:23  J.晒太阳的猫  阅读(41)  评论(0)    收藏  举报