利用 GitLab 实现 Hexo 博客的 CI/CD
Gitlab CI介绍
1 | Gitlab是常用的开源git代码管理工具之一,随着发展也推出了ci/cd解决方案. |
特性
1 | gitlab ci/cd是由独立的runner程序完成,runner采用go语言编写, |
GitLab Runner安装
添加gitlab官方库
1 | curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash |
安装Runner
1 | sudo yum install gitlab-runner |
把项目注册到到Runner
找到发布项目的注册信息
按 Settings -> CI / CD -> Runners 顺序找到Set up a specific Runner manually
里的注册信息!
1 | gitlab-runner register |
根据提示内容输入对应的注册信息!如图所示:
可以查看一下服务是否在运行,如果没有需手动启动!
1 | systemctl status gitlab-runner |
把nginx的html目录权限赋给gitlab-runner
用户,不然编译后部署会报没有权限的错!
1 | chown -R gitlab-runner /usr/local/nginx/html/ |
安装Hexo
需要先确保服务器的运行环境中已经安装了 NodeJS
执行全局安装Hexo
的命令:
1 | 全局安装 Hexo |
配置gitlab-ci.yml文件
具体配置如下:
1 | image: node # 使用node 镜像 |
推送代码后,看对应的job
任务是否有报错!
FAQ
- 注册 gitlab-runner 时,提示报错:
GitLab Runner >= 9.0 can be used ONLY with GitLab CE/EE >= 9.0
这个因为默`gitlab runner安装时最新版的,与我们正在使用的 gitlab 版本不匹配,那么我们找到匹配的 gitlab-runner 版本安装即可,从这里我们可以找到 Runner 和 GitLab CE / EE 兼容性列表 - 有时 runner 会连接不上,或者在项目仓库 -> 设置 -> runner 里呈灰色,这有可能是 runner 机器上没有启动 gitlab-runner 引起的,可以执行
ps -ef | grep gitlab
看看是否存在 gitlab-runner 的进程,如果没有则执行 gitlab-runner start 命令启动runner
服务。 - 若已经配置好了 gitlab-runner 了,执行 commit,pipeline 状态一直是
pending
,并且提示:This build is stuck, because the project doesn't have any runners online assigned to it. Go to Runners page
这个是因为未找到对应的 runner 导致的,原因一是有可能 gitlab-runner 注册失败,原因二有可能是 .gitlab-ci.yml 配置文件里面tags
没有匹配到已注册可用的 runner。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Layne666 - Blog!
评论