Jenkins stderr: GitLab: Your account has been blocked.

问题

早上来发现jenkins打包失败报错误:stderr: GitLab: Your account has been blocked. fatal: Could not read from remote repository。

分析

vpn的连接没有问题,查看了ssh对应的gitlab账号之前是绑定一名离职同事账号下,账号已经被blocked了,所以问题是机器连不上gitlab,不能同步最新代码了。

解决

公司jenkins服务器(配的一个专用做打包的mac-mini)使用的credential类型两种SSH Username with private key和 Username with password。

粘贴图片.png
  • Username with password
    • 使用这种类型的credential的话,只需要添加我的gitlab的账号和
      密码在jenkins服务器上,然后在打包任务的crediential中配置。
    • 在图上的界面中Global credentials (unrestricted) 下拉菜单点击add credential,填写gitlab账号和密码。
粘贴图片.png
  • SSH Username with private key
    • 使用这个类型credential,需要在jenkins服务器生成sshkey,分别配置到jenkins服务器和gitlab上我的账号下,然后应用到打包任务中就over了。
    • 在jenkins服务器上先删除之前生成的旧的sshkey,然后生成新的。
      rm -r ~/.ssh // 删除之前的ssh信息
      ssh-keygen -t rsa -C "youremail@xxx.com" 一路按回车键即可

命令执行完会在~/.ssh 生成 id_rsa和id_rsa.pub。 打开gitlab,添加sshkey,将id_rsa.pub文件内容全部复制粘贴过去就好了。

gitlab添加sshkey

gitlab添加sshkey

再来到jenkins配置界面update credential的配置。

jenkins update credential.png

点击箭头处,进入之后将之前生成的id_rsa文件全部内容复制粘贴到Private Key处保存。因为之前iOS打包配置使用的就是jenkins这个credential,更新之后打包正常。

总结

以上两种方式都可以用来配置打包任务的credential,都可以解决标题上的问题。credentail主要是用于jenkins从gitlab上拉最新代码,第一种方式(Username with password)比较简单,密码修改之后需要重新配置;第二种方式(SSH Username with private key)比较麻烦,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容