嵌入式linux学习笔记--gitlab学习笔记-gitlab-runnner简单的使用介绍
最近在搞gitlab 的环境以及 配套的自动化相关的一些尝试,记录一下。为了进行最近的实验,我特意开了一台虚拟机,使用的是dell R720XD 服务器配合 exsi 虚拟化了一台 ubuntu 18.04 配置如下0. 安装 gitlab服务器的安装部分网上很多教程 就不去班门弄斧了,链接如下:https://www.cnblogs.com/hgzero/p/14088215.html1. 简单
最近在搞gitlab 的环境以及 配套的自动化相关的一些尝试,记录一下。
为了进行最近的实验,我特意开了一台虚拟机,使用的是dell R720XD 服务器配合 exsi 虚拟化了一台 ubuntu 18.04 配置如下
0. 安装 gitlab
服务器的安装部分网上很多教程 就不去班门弄斧了,链接如下:
https://www.cnblogs.com/hgzero/p/14088215.html
1. 简单的登录测试一下服务器
从gitee 拉了一个项目做测试,随便挑了一个
然后使用 将工程克隆岛 新开的服务器上 然后是 使用vscode + remote-ssh 登录服务器 进行代码编辑。
jeason@jeason-virtual-machine:~$ ls
gitlab-ce_12.10.9-ce.0_amd64.deb gitlab-runner-linux-amd64 snap soem_-imx6ull sonarqube-7.6 sonarqube-7.6.zip test
jeason@jeason-virtual-machine:~$ cd test/spdlog_dyn/
jeason@jeason-virtual-machine:~/test/spdlog_dyn$ ls
1.sh builds cleanup.sh CMakeLists.txt help.txt log.txt main.cpp prepare.sh README.md run.sh spdlog
jeason@jeason-virtual-machine:~/test/spdlog_dyn$ pwd
/home/jeason/test/spdlog_dyn
jeason@jeason-virtual-machine:~/test/spdlog_dyn$
2. 配置 gitlab-runner
我一共使用过两种方案 一种是直接下载gitlab-runner 然后执行 运行的方法,另外的一种方法就是使用docker 然后去运行,这两种方法没什么本质的区别 docker 貌似更专业一些,但是指令上会稍微的复杂一点点。
2.1 获得工程的 runner 的 url 和 token
因为我只有工程的 owner 权限 不知道其他用户能不能看到 这个界面普通的 developer 权限应该是看不到的!
总之就是要拿到 项目的 url 和 token 这样就可以去配置服务器上的runner 了。
这里需要说明的一点就是 gitlab-runner 和 gitlab的服务器没必要在一个服务器上 理论上只要runner 能通过网络访问到 gitlab服务器就可以了
2.2 根据配置文件 启动 gitlab-runner
我这里就直接贴 我自己的地址和token了, 我是在自己的内网中搭建的环境并且 没有对外网开放,所以很安全。
下面的执行文件 gitlab-runner-linux-amd64 是我直接在gitlab 的官网下载的 地址是:
https://gitlab-runner-downloads.s3.amazonaws.com/latest/index.html
在下面的 文字中大量的引用了 以下文章的内容:
https://zhuanlan.zhihu.com/p/184936276
我的 runner 启动命令是:
sudo ~/gitlab-runner-linux-amd64 register -n \
--url http://192.168.1.16/ \
--registration-token iVmhZYWbZNyZkAoz_id3 \
--executor shell \
--description "bcm-executor"
对于命令的解释:
sudo # 给权限 好办事。。。 不给好像也能用
gitlab-runner-linux-amd64 # 下载下来的可执行文件原型
--url http://192.168.1.16/ # 这一对参数是指明你的git 工程是托管在哪一个服务器上的
--registration-token iVmhZYWbZNyZkAoz_id3 # 口令 证明你有这个工程的权限
--executor shell # 指定你的 runner 的执行环境 shell 应该是最简单的
--description "bcm-executor"# 描述信息, 没啥大用处
关于executor
https://zhuanlan.zhihu.com/p/184936276
以下是我注册 我的 runner的过程,
jeason@jeason-virtual-machine:~/test/spdlog_dyn$ sudo ~/gitlab-runner-linux-amd64 register -n \
> --url http://192.168.1.16/ \
> --registration-token iVmhZYWbZNyZkAoz_id3 \
> --executor shell \
> --description "bcm-executor"
[sudo] password for jeason:
Runtime platform arch=amd64 os=linux pid=33628 revision=c6e7e194 version=14.8.2
Running in system-mode.
Registering runner... succeeded runner=iVmhZYWb
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
jeason@jeason-virtual-machine:~/test/spdlog_dyn$ sudo ~/gitlab-runner-linux-amd64 verify &
[3] 33795
jeason@jeason-virtual-machine:~/test/spdlog_dyn$ Runtime platform arch=amd64 os=linux pid=33796 revision=c6e7e194 version=14.8.2
Running in system-mode.
ERROR: Verifying runner... is removed runner=KtyorMWG
ERROR: Verifying runner... is removed runner=UE5zdh7N
Verifying runner... is alive runner=Af6ryCUd
Verifying runner... is alive runner=u6iirFBV
FATAL: Failed to verify runners
[3] Exit 1 sudo ~/gitlab-runner-linux-amd64 verify
jeason@jeason-virtual-machine:~/test/spdlog_dyn$
jeason@jeason-virtual-machine:~/test/spdlog_dyn$
jeason@jeason-virtual-machine:~/test/spdlog_dyn$
操作完之后可以看到 我的runner 已经被gitlab 发现了。
2.3 编写yml 文件 简单测试runner的功能
stages: # 分段
# - install
#- eslint
- build
- deploy
# cache: # 缓存
# paths:
# - node_modules
# - build
# install-job:
# tags:
# - sss
# stage: install
# script:
# - npm install
# eslint-job:
# tags:
# - sss
# stage: eslint
# script:
# - npm run eslint
build-job:
tags:
- sss
stage: build
script:
- echo "$(date) build" >> /home/jeason/test/spdlog_dyn/log.txt
deploy-job:
tags:
- sss
stage: deploy
script:
- echo "$(date) deploy" >> /home/jeason/test/spdlog_dyn/log.txt
上述的内容命名为 .gitlab-ci.yml 并且上传到gitlab 然后就可以发现 我本地的 log.txt被写入了信息
更多的功能还待解锁。 我大致能想到的就是 可以实现一个自动发布的功能 ,每次提交之后,编译并且打包 然后自动推送到公司内部的共享盘。
后续有想法给代码进行一些简单的测试,例如 打包完之后 运行docker 然后运行qemu 仿真我们的产品运行,进而 快速的连续的测试一些接口,但是这部分的工作量可能会很大!
最近部分老大搞定了 qemu虚拟我们自己的产品,这个我也很感兴趣,等我玩会了 也要整理一下!
参考资料:
《Gitlab的安装及使用》
https://www.cnblogs.com/hgzero/p/14088215.html
《Gitlab-ci:从零开始的前端自动化部署》
https://www.cnblogs.com/hgzero/p/14088215.html
《基于 GitLab CI/CD 的自动化构建、发布实践》
https://blog.csdn.net/qq_36737839/article/details/113694367
《Install GitLab Runner manually on GNU/Linux》
https://docs.gitlab.com/runner/install/linux-manually.html
今天其实还看了一个 代码的自动审查工具,但是没了解多少东西,改天整理一下,以下的暂时没用到
《SonarQube下载、安装、使用》
https://www.jianshu.com/p/4d9d2534c0d3
更多推荐
所有评论(0)