由于这前用python写的发布工具过于简陋,不能满足扩展需求,调研后发现 gogs+drone环境相对简单,so

gogs安装

  • 官网下载最新版本安装即可,根据提示配置
    • 前两次数据库没配好,安装界面点提交没反应,配好后正常
  • 由于其他用户无法用80端口,所以前置了nginx代理
        location / {
                proxy_pass http://localhost:8080/;
        }
  • 放行本地构子
    • 在app.ini最后添加:LOCAL_NETWORK_ALLOWLIST = drone,192.168.20.111,192.168.20.120

docker安装

由于drone仅支持docker配置,所以安装了docker

  • 安装docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
cat docker.list 
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo service docker start #装完默认没启动
  • 建议将本地用户名加到docker组,不然会报错
  • 替换国内源并重启服务
sudo gpasswd -a `USERNAME` docker #USERNAME 为用户名
sudo newgrp docker
docker pull wangbinxingkong/fast
docker run --restart always --name fast -p 8081:8081 -d -v /var/run/docker.sock:/var/run/docker.sock wangbinxingkong/fast

drone安装

  • 安装server
  • 安装runner
    • 也是参照官网,我装的是dockerRunner方便打包时隔离
    • DRONE_RPC_HOST 直接用镜像名会报错,可以用ip或nginx加个域名

drone任务配置

  • 使用gogs管理员帐户密码登录后,会自动同步仓库
  • 仓库下新建 .drone.yaml文件,即可执行任务