GITLAB配置CI教程

一、gitlab runner下载安装

1、研发网下载安装包【172.20.191.53已经安装过了,不用再安装了,可以直接到第三步】

下载gitlab安装包

复制代码
wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/32/gitlab-runner-12.1.0-1.x86_64.rpm

​

2、安装【172.20.191.53已经安装过了,不用再安装了,可以直接到第三步】

安装

复制代码
rpm -i gitlab-runner-12.1.0-1.x86_64.rpm

3、获取token【复制图中步骤4的token,同时复制图中的URL】

4、注册

注册

复制代码
sudo gitlab-runner register

a、1和2使用刚才获取的URL和TOKEN

b、4表示TAG,设置好需要记住,比如你这个是x86_64_linux,后续在写ci脚本的时候TAG需要和这个对应;

c、6表示的是默认运行ci的服务器地址,8.9这个可以使用个人账号或者公共账号都可;

d、上述图片中没有标记数字的步骤,可以使用默认值直接enter;

5、gitlab的项目和runner是否绑定成功判断

重复第三步的路径,查看有如下的内容,即配置成功。

6、CI脚本配置

gitlab仓库有一些脚本的模板,可以自己选择,当然进一步学习高阶用法可以在网上找相关资料,或者从其他配置好的项目中去抄,最终目的就是为了创建一个

.gitlab-ci.yml 的文件。

学习教程:极狐GitLab CI/CD 入门 | 极狐GitLab

7、成果展示

如果所有的配置正确,并完成了ci脚本的编写,就可以执行流水线的任务,如图

二、Q&A

1、第二次执行ci出错

已知问题经验

复制代码
Using
Shell executor...
Running on localhost.localdomain...
Reinitialized existing Git repository in
/home/gitlab-runner/(...)/.git/
Clean repository
Fetching changes with git depth set to 50...
fatal: remote origin already exists.
fatal: git fetch-pack: expected shallow list
ERROR: Job failed: exit status 1

解决方案:

解决方案

复制代码
Options to fix:
 1、Upgrade to a newer version of git on the runner.
 2、In .gitlab-ci.yml, use the option to git clone:
variables:
  GIT_STRATEGY: clone

 3、Configure Gitlab, change Git strategy for pipelines of the project to "git
     clone".
          3.1. In the Gitlab web gui,
          3.2. go to your project,
          3.3. then: "Settings -> CI / CD -> General
     pipelines".
          3.4. Change the options for:
  "Git strategy for pipelines" to: "git clone"
  "Git shallow clone" to: 0
相关推荐
Cory.眼18 小时前
AI写CI/CD脚本:Gemini实战指南
ci/cd
牛奶咖啡1319 小时前
CI/CD——在jenkins中自动化构建与部署java项目jpress的镜像且搭建一键部署gitlab与jenkins环境
ci/cd·jenkins·一键部署gitlab私有仓库·安装部署jenkins·blue ocean构建镜像·jenkins部署镜像·jenkins自动构建部署镜像
GISer_Jing2 天前
全栈实战:分支管理到CI/CD全流程
运维·前端·ci/cd·github·devops
GISer_Jing2 天前
现代全栈工程化实战:Git+Docker+Vercel+CI/CD
git·ci/cd·docker
测试那点事儿2 天前
第8章 零基础接口自动化到 Jenkins 持续集成【云服务器安装 Docker 并部署 Jenkins】
ci/cd·自动化·jenkins
测试员周周3 天前
【免费福利】AI测试:测试技能包进阶:造数、压测、视觉回归、CI 全流程串联
开发语言·人工智能·python·功能测试·测试工具·ci/cd·测试用例
xmlhcxr3 天前
从 0 到 1 落地企业级 DevOps CI/CD 流水线:基于 GitLab+Jenkins+Harbor 的完整实践
运维·docker·gitlab·jenkins·harbor·devops
高旭的旭3 天前
GitLab Omnibus Docker 内存优化实战:从 4.7 GiB 降到 3.2 GiB
docker·容器·gitlab
梵得儿SHI4 天前
(第三篇)Spring AI 架构设计与优化:容器化与云原生部署,基于 K8s 的 AI 应用全生命周期管理
java·ci/cd·docker·云原生·kubernetes·容器化·spring ai
zhangfeng11335 天前
CI/CD 是软件开发中的两个核心实践,合起来指代一套自动化的软件交付流程
运维·ci/cd·自动化