1. Jenkins and GitLab

  

  • Jenkins是一个自动化服务器,可以运行各种自动化构建、测试或部署任务。
  • GitLab是一个代码仓库,用来管理代码。
  • 两者结合起来,就可以实现开发者提交代码到GitLab,   Jenkins以一定频率自动运行测试、构建和部署的任务,帮助开发团队更高效的集成和发布代码。

2.创建一个Jenkins Job

  

  • 在Jenkins里,一个任务叫做一个job。一般我们的项目会有多个分支,比如开发分支和产品分支,我们可以对每一个分支都新建一个job,比如我们对开发分支创建一个测试的job,每次有代码提交就自动运行一次测试,对产品分支创建一个打包的job,每次有代码提交就运行打包任务。

  

  • 点击创建,item name可以随便起,然后点击构建一个自由风格的软件项目,点击ok。
  • 一个job创建成功。

3. 配置job

  

  

  • 打开Jenkins,进入job页面。点击配置。

    

  

  • 选择“源码管理”—>git
  • Repository URL中,粘贴GitLab中的项目地址。
  • Credentials中,点击add—jenkins
  • Kind:选择Username with password
  • 填写Username
  • 填写Password
  • 点击Add
  • 最后点击保存

注意:选择git,添加gitlab仓库路径无论怎么尝试都报如下两个异常。我这边尝试了,刚开始也报错,总结了2种解决方案:

2种异常:
Failed to connect to repository : Command "git ls-remote -h git@xxxxx.com:xxx/dev_test.git HEAD" returned status code 128:
stdout:
stderr: Permission denied, please tryagain.
Permission denied, please try again.
Permission denied(publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: The remote end hung up unexpectedly 或者
Failed to connect to repository : Command "/usr/local/git/bin/git -c core.askpass=true ls-remote -h http://www.xxx.com/gitlab/root/test.git HEAD" returned status code 128:
stdout:
stderr: fatal: Unable to find remote helper for ‘http‘

2种解决方案:

  1)由于运行jenkins用户没有生成ssh私钥,且没有添加gitlab中。因此导致了如上异常。

  生成ssh私钥

  ssh-keygen -t rsa -C "admin@example.com"
将生成的公钥复制到粘贴板
  cat ~/.ssh/id_rsa.pub | clip  回到gitlab网页,将添加到gitlab-->Profile Settings-->SSH Keys-->Add an SSH key。
  

  

 回到jenkins页面---源码管理---选择“Git”---去GitLab中复制项目地址,粘贴到“Repository URL”---点击“credentials”后面的“Add”按钮---Private Key---Enter directly ---key。将私.  钥添加到key中。


 保存后重启jenkins即可。

  2)当我把gitlab创建的项目设置为private,jenkins就会报上述错误。解决方法就是,设置gitlab的Visibility Level为public即可。
  

  

4.Branch Specifier

  

  • Jenkins job默认对master分支进行构建,也可以自定义分支。不过要求你的gitlab代码仓库中要存在这个分支,一般来说,要向代码仓库提交一次更改,即可自定义分支了。

5. 配置job的构建触发器

  

  • Poll SCM: 每隔一段时间检查gitlab仓库中代码是否有更新,有的话就执行构建操作。
  • Build after other projects are built:当另一个构建任务完成之后触发
  • Build periodically:周期性的触发
  • GitHub hook trigger for GITScm polling:通过GitHub钩子触发

6.配置 Job的构建脚本

  

  

  • 在构建中,支持多种构建脚本,我选择的是execute shell,然后输入项目构建命令(这依赖于你的项目)

至此,所有工作已经完成,现在你提交代码到gitLab,jenkins帮你运行构建,这样大家的代码自动集成到一起,出了错很快就知道了。

												

搭建GitLab+Jenkins的更多相关文章

  1. Jekens 配置多项目SCM GitLab+Jenkins持续集成环境

    参考: 搭建GitLab+Jenkins持续集成环境图文教程 https://blog.csdn.net/ruangong1203/article/details/73065410 Jenkins中配 ...

  2. gitlab+jenkins环境搭建.md

    gitlab+jenkins自动化部署环境搭建 环境说明 系统 主机 IP 安装软件 CentOS 7 study-1 192.168.100.51 gitlab.git CentOS 7 study ...

  3. docker + gitlab + jenkins 搭建 CI/CD 系统

    gitlab+jenkins+docker 计算机网络大全

  4. 持续集成环境(Gitlab+jenkins+shell)

    一.搭建gitlab ps:不是这方面的专家,主要还是一键式安装为主. 1.进入官网:https://about.gitlab.com/gitlab-com/ 2.选择自己的操作系统:我这边选择的ub ...

  5. GitLab+Jenkins持续集成

    一.概述 GitLab是一个代码仓库,用来管理代码.Jenkins是一个自动化服务器,可以运行各种自动化构建.测试或部署任务.所以这两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins ...

  6. 关于gitlab+jenkins自动部署代码的实现

    本人PHP开发者,项目组大多是PHP,少量java项目. 因公司目前服务器和项目的管理比较混乱,与领导商量后,决定尝试 gitlab+jenkins自动化部署(之前用的svn FTP手动部署代码),解 ...

  7. devops持续集成,Centos7.6下gitlab+jenkins(pipeline)实现代码自动上线

    持续集成 gitlab+jenkins(pipeline)实现代码自动上线 环境准备:Centos7.6版本ip:192.168.0.13 主机名:gitip:192.168.0.23 主机名:jen ...

  8. gitlab+jenkins自动化打包APK

    前置条件: 环境搭建,jenkins需要的插件看这里: gitlab+jenkins自动化打包IOS 配置思路: step1: 搭建sdk,gradle运行环境,参照: CentOS7下安装安装and ...

  9. Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)

    通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...

随机推荐

  1. oracle取出多个字段列中的最大值和最小值

    greatest 函数和least函数 select serverid, greatest(e.core0, e.core1, e.score2 ) from e

  2. 从入门到熟悉 HTTPS 的 9 个问题

    九个问题从入门到熟悉HTTPS 最近一边做毕设一边学习编程.前两天她问我 HTTPS 的问题,本来想直接扔一篇网上的教程给她.后来想了一下,那些文章大多直接介绍概念, 对新手不太友好,于是我干脆亲自给 ...

  3. JAVA 中文 unicode 相互转换 文件读取

    package com.test; import org.junit.Test; public class JunitTest { @Test public void test(){ String p ...

  4. 44.纯 CSS 创作背景色块变换的按钮特效

    原文地址:https://segmentfault.com/a/1190000015192218 感想: 伪元素作为背景变化. HTML code: <nav> <ul> &l ...

  5. js对象及元素复制拷贝

    1.数组及对象拷贝: 浅拷贝var b=$.extend(false,{},a);//对象浅拷贝 var a={aa:111,bb:{bb1:22}}; var b=$.extend(false,{} ...

  6. js 简单算法

    1. 嵌套数组打平并且去重 ,,,,,,,,[,,,,[,,]]]; var obj = {};//去重标识 function test(data) { var newArr = []; for ( ...

  7. 机器学习进阶-图像基本操作-数值计算 1.cv2.add(将图片进行加和) 2.cv2.resize(图片的维度变换) 3.cv2.addWeighted(将图片按照公式进行重叠操作)

    1.cv2.add(dog_img, cat_img)  # 进行图片的加和 参数说明: cv2.add将两个图片进行加和,大于255的使用255计数 2.cv2.resize(img, (500, ...

  8. Spring boot 自定义starter

    以下配置来自尚硅谷.. 常用如何配置 @Configuration //指定这个类是一个配置类 @ConditionalOnXXX //在指定条件成立的情况下自动配置类生效 @AutoConfigur ...

  9. fb发布打包外部资源

    将资源放在src文件夹下面即可 然后在打包那就会看到资源,勾上即可

  10. 配置maven访问nexus,配置项目pom.xml以发布maven项目到nexus中

    maven访问nexus有三种配置方法,分别为: 项目pom.xml,优先级最高: user的settings.xml,优先级中,未在pom.xml中配置repository标签,则使用这个配置: m ...