更多信息请关注 个人网站

一、背景

在有些时候,比如在一个项目中,产品的代码是java代码仓,自动化测试脚本是python语言,单独存放的代码仓,在使用GitlabCICD构建流水线的时候有这样一种场景,比如对产品的java代码进行了编译打包部署,这个时候想在java代码仓的.gitlab-ci.yml中继续使用git clone python自动化脚本代码仓,这样虽然自动化测试脚本单独存放代码仓,却可以很好的集成到java产品代码仓的流水线中,执行完自动化测试后还能将测试结果上传到java产品的代码仓,从而达到完整的有机整体

但是在实际操作中,在执行git clone xxx的时候报如下错误

$ git clone git@xxxxxt.git
Cloning into 'summer_ospp_autotest'...
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

当然gitlabCICD流水线支持java代码仓触发python代码仓的trigger的方式,但是不能很好的将自动化用例的通过与否反馈到java代码仓中

二、原因分析

(1)手工的方式使用root用户登录gitlab-runner的虚拟机,然后执行git clone的方式是可以下载代码的(因为已经在gitlab上配置了公钥)
(2)GitLabCICD流水线执行的方式跟手工的方式几乎完全一样,不同的是gitlab流水线执行的时候是使用gitlab-runner的用户登录的

是的,gitlab流水线执行git clone失败的原因就是因为用户不同的原因,因为gitlab-runner用户是没有权限访问root用户的.ssh目录下的文件的

三、解决方案

(1)将root用户的 .ssh 文件下的所有文件都拷贝到 gitlab-runner用户下

cp /root/.ssh/* /home/gitlab-runner/.ssh/

(2)查看 gitlab-runner 用户下的 .ssh 文件下的文件的所属者及所属组,发现此时仍然属于root用户和root用户组

[root@192-168-8-104 ~]# ls -la /home/gitlab-runner/.ssh
total 16
drwx------.  2 gitlab-runner gitlab-runner   80 Nov 26 13:32 .
drwx------. 12 gitlab-runner gitlab-runner  192 Oct 26 15:46 ..
-rw-------.  1 root          root           565 Nov 26 13:32 authorized_keys
-rw-------.  1 root          root          1679 Nov 26 13:32 id_rsa
-rw-r--r--.  1 root          root           400 Nov 26 13:32 id_rsa.pub
-rw-r--r--.  1 root          root           373 Nov 26 13:32 known_hosts

(3)将 gitlab-runner 用户下的 .ssh 文件下的所有文件的所属者和所属组都划分给gitlab-runner

chown gitlab-runner /home/gitlab-runner/.ssh/*chgrp gitlab-runner /home/gitlab-runner/.ssh/*

(4)再次查看,如下,表示已经OK了

[root@honghua-centos-02 ~]# ls -la /home/gitlab-runner/.ssh
total 12
drwx------  2 gitlab-runner gitlab-runner   57 Nov 25 16:06 .
drwx------ 10 gitlab-runner gitlab-runner  165 Nov 25 15:55 ..
-rw-------  1 gitlab-runner gitlab-runner 1679 Nov 25 16:06 id_rsa
-rw-r--r--  1 gitlab-runner gitlab-runner  400 Nov 25 16:06 id_rsa.pub
-rw-r--r--  1 gitlab-runner gitlab-runner  372 Nov 25 17:25 known_hosts

(5)再次触发gitlab流水线,此时即可以在.gitlab-ci.yml中使用git clone 的方式下载子库的代码了

如下即为一个java代码仓的.gitlab-ci.yml中的测试步骤,去自动化测试脚本仓下载代码,然后执行用例,执行完成后将自动化结果上传到java代码仓的流水线,如此就能很好的做到开发人员提交代码后即能看到用例通过情况

Gitlab安装部署----CentOS7系统

Gitlab安装部署----Docker方式

Gitlab安装部署----安装注册Gitlab Runner

Gitlab安装部署----卸载Gitlab Runner

GitLabCICD实战----在.gitlab-ci.yml文件的步骤中使用git clone 另一个代码仓报错的解决办法

GitLabCICD实战----在.gitlab-ci.yml文件的步骤中使用git clone 另一个代码仓报错的解决办法相关推荐

  1. 【ML/DL】python3学习《机器学习实战》书中的报错及解决办法

    python3学习<机器学习实战>书中的报错及解决办法(更新中) <机器学习实战>是一本很不错的书,其采用的是py2的语法格式,在用最新的python3.6编写代码的过程中,书 ...

  2. jmeter 打开报错_jmeter打开.jmx文件报错的解决办法

    使用jmeter打开.jmx文件出现以下报错信息 Problem loading XML from:'C:\Users\ADMINI~1\AppData\Local\Temp\360zip$Temp\ ...

  3. 关于.rdc文件导入Blender软件时失败报错的解决办法(从谷歌地图中获取带纹理的倾斜模型数据)

    文章目录 写在前面 一.如何获取谷歌地图中带纹理的倾斜模型数据 1.传送门 2.注意事项 二.遇到问题:导入.rdc文件后报错 三.解决办法:更换软件版本 1.版本选择 2.注意事项 四.写在最后 写 ...

  4. 当碰到非ARC写的文件时在ARC环境下运行报错时解决办法

    转载于:https://www.cnblogs.com/ithongjie/p/4962943.html

  5. include引入php报错,如何解决引入php文件报错的问题

    引入php文件报错的解决办法:首先检测被包含的文件读权限是否打开:然后检测被包含的文件路径上的每个目录的x权限是否打开,将该权限打开即可. php脚本中include文件报错解决方法 经常当php页面 ...

  6. phpstudy访问不了php_初接触php,使用phpstudy运行php文件,访问路径中不能携带.php尾缀,否则报错...

    使用phpstudy运行php文件,路径中不能携带.php尾缀,否则报错 直接使用one可以访问,这个是控制层出问题吗 这个是控制层代码 class one extends General_contr ...

  7. Vivado生成bit文件报错彻底解决

    1.1 Vivado生成bit文件报错彻底解决 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Vivado生成bit文件报错彻底解决: 5)结束语. 1.1.2 本节引 ...

  8. VsCode配置Python开发环境后运行代码会报错“无法加载文件 D:\Code\xxx\poetry-demo\.venv\Scripts\Activate.ps1”

    问题描述:在VsCode中配置Python开发环境后运行代码会报错"无法加载文件 D:\Code\xxx\poetry-demo\.venv\Scripts\Activate.ps1&quo ...

  9. 使用ftp服务上传文件时553报错的解决

    使用ftp服务上传文件时553报错的解决 在使用ftp上传本地文件时,会遇到553的报错,以下是我总结的解决方法 1.使用本地用户登陆时 在使用本地用户登陆ftp服务上传文件时,如果遇到553的报错, ...

最新文章

  1. 简单介绍CentOS6升级glibc操作步骤
  2. Embarcadero公司花2千3百万买下Borland的开发工具业务
  3. linux md5sum 的用法(转)
  4. 旗帜鲜明的反对李彦宏当选院士!
  5. java同步锁synchronized_Java对象锁和类锁全面解析(多线程synchronized关键字)
  6. noip模拟赛 Chtholly Nota Seniorious
  7. boost::rational用法的测试程序
  8. 移动端页面适配解决方案
  9. 【NOI2011】兔兔与蛋蛋的游戏【二分图博弈】
  10. Python基础-----列表、元组、集合(2)
  11. JdbcTemplate的主要用法
  12. 吴恩达深度学习2.2练习_Improving Deep Neural Networks_Optimization
  13. 【分享】U盘大小的随身电脑 – Cotton Candy
  14. 运筹学及其matlab应用,运筹学基础及其MATLAB应用
  15. 激光3D打印做饭或更香,下一代大厨问世
  16. windows11账户登录不上去怎么办?
  17. 软件工程导论第六版 第五章 总体设计知识点总结
  18. java基于springboot+vue的驾校学车报名预约管理系统 nodejs+element
  19. think php5.1案例教程,Thinkphp5.1进阶与实战
  20. Zwave Gen7 不加网不断发送命令

热门文章

  1. 灵魂拷问:我的口红什么色?为此,我做了一个口红识别神器
  2. mybatis oracle两种方式批量插入数据(带序号)
  3. IE浏览器主页被篡改为2345,针对一般解决办法无法解决的情况
  4. 知识点小悟2019-1-18
  5. VLSI芯片电路测试分类testMode、模式、时钟复位输入输出
  6. YOLOv5检测界面-PyQt5实现
  7. AutoDL算力平台租用GPU服务器+VSCode远程开发同步代码
  8. 广州大学 计算机基础,广州大学计算机应用基础试卷A卷
  9. postgis的扩展包fuzzystrmatch和postgis_tiger_geocoder的安装
  10. 计算机无法联网的原因和解决方案,电脑连接不上网的原因和解决办法