GitHub上的是免费版,GitLab上的是全功能版
https://gitlab.biliwind.com/yuncheng/tuanicp
起初,这个项目只有团子一个人在维护,但是某一次我发现了团子的站点重定向有bug,我就顺手给修了,之后我开始翻团子的代码,突然想起来他还有个TuanICP的项目,然后我就开始修漏洞,加功能,现在我也加进这个项目维护了
至于我干了点啥…
原本的后台是这样的
现在是这样的
虽说不能说有多好看,但是最起码比以前的功能多了,也好看了一些
正巧我的服务器上还有自己的GitLab,那干脆就做一套CI/CD(持续集成、持续部署)吧
CI/CD有一个很重要的东西是runner,所有的脚本、构建等都在runner上执行,我的runner有5个,在中国大陆、中国香港、美国、都有,如果你只是临时跑个什么高配置要求的东西,例如编译个内核什么的,完全可以低价“租”一台高配runner,我目前只发现雨云一家可以这样干
按照原价算出来,一天要6块钱的服务器可以1元试用,如果有特殊需求,你甚至可以试用带显卡的服务器
看得出来雨云非常的良心,性价比甚至要高过腾讯云、阿里云这些大厂的按量付费实例
踩坑、误区解释
自带的编辑器
GitLab自带一个WebIDE,打开之后是一个经过一些定制的vscode网页版,但是需要注意的是,自带的IDE仅推荐临时写代码使用,不建议编辑过多的文件,否则当心会卡
这个也可以作为一个上传文件的渠道来使用,只需要把本地的文件拖进去,再用它自带的git提交就可以,对新手来说非常友好,只需要点一下就可以完成提交
但是这个IDE也有一些小bug,例如有时候渲染的光标和实际光标位置不一样,错位很多
千万不要用它上传太多的文件!!!
自动部署
自动部署使用了宝塔和gitlab的webhook功能,在网上找了一段脚本:
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
echo "param参数错误"
echo "End"
exit
fi
#git项目路径
gitPath="/www/wwwroot/icp.yuncheng.fun"
#git 网址
gitHttp="https://gitlab.biliwind.com/yuncheng/tuanicp.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
#拉取最新的项目文件
sudo git reset --hard origin/master
sudo git pull
#设置目录权限
sudo chown -R www:www $gitPath
echo "End1"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
在宝塔添加脚本后需要在gitlab也配置,调用地址是这里点进去官方给出的地址
至于触发条件,我选的是有提交就部署到服务器
这样做并不会消耗太多服务器的带宽,甚至比你自己手动上传还要节省带宽,因为git只会同步有更改的文件,没有更改的不会下载