10分钟搞定gitlab-ci自动化部署_gitlab ci 自动化部署
liuian 2025-09-01 08:15 48 浏览
gitlab-ci 是持续集成工具/自动化部署工具,类似 jenkins。
持续集成 是将代码集成到共享存储库并尽可能早地自动构建/测试每个更改的实践 - 通常一天几次。
概述
在编码完成时都会进行打包发布过程,如果每次都手动操作这一步骤就会浪费时间,效率低下。所以就有了持续集成。
准备事项
请提前安装以下软件,本文不介绍如何安装。
- gitlab
- git
配置SSH Key
这一步至关重要,如果已配置可直接跳过。 如果不配置的话每次git pull都会要求输入密码,这样就做不到自动化了。
输入以下命令,一直回车即可
ssh-keygen -t rsa -b 4096 -C "你的邮箱@example.com"
查看生成的公钥, 并复制下来
cat ~/.ssh/id_rsa.pub
在gitlab上添加 SSH Key, 至此完成
新建git仓库
这一步可选,如果你已经有项目可直接跳过,只是为了照顾新人
1、在gitlab上新建项目
2、克隆仓库, 服务器和本地机器都要克隆,位置随意。 我把仓库克隆到了 /home/test/
git@localhost:root/test.git
安装 gitlab-runner
1、使用gitlab官方提供的仓库
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
2、使用yum进行安装
sudo yum install gitlab-runner
查看Runners配置信息
将 url 和 token复制保存下来,接下来的配置需要用到这2个。
位置 工程项目 -> Settings -> CI/CD -> Runners(点击右侧Expand展开起来就能看到)
url: http://localhost:8088/
token: LquGyHsNbzB2uBBxQMMj
注册gitlab-runner
安装完gitlab-runner还需要进行注册
1、输入以下命令进行注册
sudo gitlab-runner register
2、提示 Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
将url粘贴并回车(不要说不知道~)
http://localhost:8088/
3、提示 Please enter the gitlab-ci token for this runner:
token粘贴并回车(不要说不知道~)
LquGyHsNbzB2uBBxQMMj
4、提示 Please enter the gitlab-ci description for this runner:
描述,随便输入
test build
5、提示 Please enter the gitlab-ci tags for this runner (comma separated):
输入标签, 可随意输入, 我就叫做 build
build
6、提示 Please enter the executor: docker, parallels, shell, ssh, docker+machine, custom, docker-ssh, virtualbox, docker-ssh+machine, kubernetes:
这一步根据自己的需求选择,这里选择 shell, 然后回车
shell
注册完成!~
注册 gitlab-ci-multi-runner
这一步和注册 gitlab-runner 一模一样,输入同样的信息即可
sudo gitlab-ci-multi-runner register
运行 gitlab-runner
查看是否运行成功,就在查看配置信息这里, 绿色圆点表示运行成功
如果上述没有运行,就执行这一步,否则跳过
gitlab-runner run
编写 gitlab-ci.yml
在本机项目根目录新建 .gitlab-ci.yml 然后写入:
stages: - build # task-1 名字随意,代表一个工作 task-1: stage: build # 执行脚本, 这段脚本会在服务器执行 script: - mkdir -p /home/temp_dir tags: # 标签名字,注册runner时所填写的tag - build only: # 只有 master 分支才会执行 - master
提交到远程仓库, gitlab 会侦测项目根目录下是否有 .gitlab-ci.yml, 如果有就会执行内容里面的任务。
查看本次任务是否执行成功, 如果出现 passed 表明成功执行
不过呢,并非都是那么好运气的,有以下几种情况出现:
- pending 系统资源可能不足
- canceled 取消执行 或 根目录没有 .gitlab-ci.yml
- failed 任务失败, 基本上是 .gitlab-ci.yml 编写有误
上面的任务只是每次提交会在 home 目录下新建 temp_dir
如果想每次提交进行自动打包/重启呢?例如node服务端
只要在 script 字段编写一系列命令即可, 或者执行 shell 脚本
stages: - build # task-1 名字随意,代表一个工作 task-1: stage: build # 执行脚本, 这段脚本会在服务器执行 script: - cd /home/test - git pull - npm run build - pm2 restart all tags: # 标签名字,注册runner时所填写的tag - build only: # 只有 master 分支才会执行 - master
.gitlab-ci.yml 配置信息非常多,可参考 官方yaml配置
gitlab-runner其他命令
运行 gitlab-runner
gitlab-runner run
查看 gitlab-runner 状态
gitlab-runner status
查看注册列表
gitlab-ci-multi-runner list
删除注册信息
gitlab-ci-multi-runner unregister --name "名称"
最后
gitlab-ci 基本上是可以满足大部分自动化部署场景的,如果想功能强大点的可上 jenkins。
相关推荐
- win10电脑自动更新怎么关闭(win10电脑怎么关闭自动更新系统)
-
win10老推送win11打开的方法步骤如下,1,首先,打开设置,点击更新和安全2,打开后,点击windows预览体验计划3,打开后,点击开始4,然后按流程进行注册5,注册完成后,点击选择帐户6,然后...
- window7下载steam(window7下载一键重装如何恢复网络)
-
回答如下:要在Windows7上下载Steam,您可以按照以下步骤操作:1.打开您的浏览器,访问Steam官网(https://store.steampowered.com)。2.点击页面右上角...
- 系统还原没有还原点怎么办(系统还原点不动怎么办)
-
如果电脑没有创建还原点,就不能使用系统还原来回到之前的状态。但是,可以尝试使用其他备份工具或软件来恢复数据或重建系统。比如,可以使用第三方备份软件来备份重要文件和数据。如果是系统出现问题,可以尝试重新...
- 正在准备windows(正在准备windows请勿关机怎么办)
-
这个情况在使用华为电脑时可能会遇到。一般来说,这是因为电脑正在进行系统更新或者安装软件程序等操作,导致启动时间较长。如果电脑显示“正在准备Windows,请勿关闭电源”,则说明电脑正在进行系统更新。...
-
- 有win10安装包怎么装系统(win10安装包安装教程)
-
如果是原版ISO镜像,可以加载到虚拟光驱直接安装。如果是第三方更改的就需要启动盘。个人建议用U盘启动盘来安装。下载一个u盘启动盘程序(优启通、大白菜……),按照提示把它安装到U盘。启动盘制作完毕以后,启动电脑安快捷键选择U盘启动。进入pe后...
-
2026-01-14 16:37 liuian
- gho怎么变成iso文件(gho改成iso)
-
要将GHO转换为ISO,您需要使用GHO映像转换器软件。以下是执行此操作的步骤:1.下载和安装GHO映像转换器软件。2.运行转换器软件,并单击“打开”按钮。3.在弹出窗口中,选择要转换的GHO...
- office和visio安装顺序(office和visio怎么一起安装)
-
在某些情况下,安装Visio可能会发生与Office365冲突的问题。这是因为Visio和Office365具有不同的版本,可能会导致安装时出现错误或兼容性问题。为了避免这种冲突,...
- 电脑中病毒的原因(电脑中病毒正常吗)
-
电脑中毒的原因有以下几方面:1.网页被挂病毒。2.电脑裸奔,无防病毒软件。3.执行一些不安全的程序。4.U盘等不安全介质。5.电脑漏洞不及时补,被后台种毒。为了电脑不中病毒要注意以下几方面:1.更新系...
- 手机psd转换成jpg最简单方式
-
可以使用photoshop工具,方法如下:1、首先打开PS软件,然后选择自己需要的JPG格式的图片,在PS中打开。2、接下来先按快捷键“Ctrl+j”将图片复制出来,防止后面操作对原图片有损...
- win7提示激活码过期怎么办(win7激活已过期)
-
以win7为例,出现这样的问题原因分析:电脑的win7系统激活过又重新提示要激活的原因是因为微软对网络上的秘钥进行封杀所以导致我们激活无效。具体的解决方法:1、我们打开dos命令窗口,在创立中输入“s...
- 联想笔记本光驱驱动下载(联想电脑光驱驱动器在哪)
-
开机时进入BIOS,具体按什么牌子不同,按键也不同,开机有提示的,选择启动项,把光驱启动的顺序放到第一.按F10保存,重新启动就是光驱启动啦不需要设置光驱驱动,笔记本自带光驱驱动光驱是电脑的硬件设备,...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
