一、部署gitlab

  gitlab部署我采用的是docker的方式,这种方式的优势是方便;之前部署过非docker的gitlab,需要配置安装许多东西,太麻烦,还是docker部署方便,从官网pull下来,直接已启就ok了;

  官方gitlab容器链接:https://docs.gitlab.com/omnibus/docker/README.html

  1、export GITLAB_HOME=/usr/local/gitlab 先配置临时环境变量,这步可省略,但是第二步要写绝对路径;
  2、docker run --detach --publish 80:80 --hostname 192.168.31.120 --name gitlab --restart always --volume $GITLAB_HOME/config:/etc/gitlab --volume $GITLAB_HOME/logs:/var/log/gitlab --volume $GITLAB_HOME/data:/var/opt/gitlab gitlab/gitlab-ee:latest
  注意:
  1)、这个地方如果有域名就--hostname 指定域名(最好是能现网解析的域名),如果不指定则默认是容器的CONTAINER ID;并且在gitlab运行起来的时候,仓库地址会是CONTAINER ID;可以通过hosts绑定的方式,但是非常麻烦;
  2)、--hostname指定的name配置存放在gitlab.xml;第一次启动的时候我没有指定hostname,发现仓库地址是container id,本来想直接在配置文件中修改了,但是发现不生效,所以就重新启动了个容器;
  3)、端口映射最好也映射成80,我第一次映射的8080,每次clone地址的时候都需要将端口添加上;
  4)、如果没有域名的最好启动容器的时候直接将hostname写成ip地址,注意不要带非80端口(1.1.1.1:8080),否则,容器内部的端口就是8080,而非80;
  5)、只是在运行容器的时候我发现了这些问题,如果非容器启动gitlab;上述问题可以通过修改配置文件解决;

  3、创建组--->创建project--->创建用户

    gitlab用户组的5种权限:

      Guest:可以创建按issue,发表评论,不能读写版本库;

      Reporter:可以克隆代码,不能提交,QA/PM可以赋予这个权限;

      Developer:可以克隆代码,开发,提交,push,普通开发可以赋予这个权限;

      Maintainer:可以创建项目,添加tag,保护分支,添加项目成员,编辑项目,核心开发可以赋予这个权限;

      Owner:可以设置项目访问权限,删除项目,迁移项目,管理组成员,开发组长可以赋予这个权限;

二、idea向gitlab上传代码

  1、在vcs中开启git功能
  2、右击项目--->git--->commint Directory 提交代码到本地仓库
  3、右击项目--->git--->add--->(项目备注)
  4、右击项目--->git--->Repository--->Remotes 添加gitlab project地址,可以在gitlab上clone http地址;
  5、右击项目--->git--->Repository--->Push

三、jenkins连接gitlab

  1、安装jenkins
    1)、通过rpm包安装,大部分中文界面,但是版本不是最新的;(我采用的这种方式)
    2)、通过tomcat部署jenkins,可以从官网下最新的;
    3)、在部署jenkins的这台机器上安装java,(我用的1.8.0_211);
    4)、在部署jenkins的这台机器上安装git以及maven(从官网下最新版即可);

  2、配置jenkins

    1)、全局工具配置:系统管理(Manage Jenkins)--->全局工具配置(Global Tool Configuration)--->配置java/git/maven的路径

               

      java和maven都是工作路径,只有git的配置是git的可执行程序;

    2)、系统配置:系统管理(Manage Jenkins)--->系统配置(Configure System)--->全局属性--->勾选环境变量(Environment variables)

      

       其中JAVA_HOME/MAVEN_HOME的键可以定义,值都是工作目录;注意:PATH+EXTRA这是固定写法,值引用maven的键,定义maven的可执行文件的路径;该地方不配置在构建的时候会提示找不到mvn命令;

  3、创建jenkins任务并配置

      

     

      Credentials可以在jenkins任务配置的时候添加,也可以在系统管理(Manage Jenkins)--->Manage Credenials中添加全局域;这个地方我选择的是账户密码的方式,这地方的账户密码是gitlib中有 该项目权限的用户的账户密码;

    注意:分支的配置,要根据实际情况来配置,否则在构建的时候会报错;(Couldn`t find any revision to build,Verify the repository and branch configuration for this job);构建日志中会有体现;

  4、构建工程

    

    我总共构建了8次,失败了7次,可以点进去构建历史有日志看具体报错解决问题;

    查看构建日志:

    

   

gitlab+jenkins学习笔记的更多相关文章

  1. Jenkins 学习笔记

    Jenkins 的内容网站蛮多的,但是一开始我看起来确实很费劲.似乎好多东西都是悬空的,没有把底层的信息交代清楚. 我把自己对于 Jenkins 的探索过程记录下来,如下. 目录 Jenkins 学习 ...

  2. Gitlab+Jenkins学习目录

    Gitlab+Jenkins基础篇 Gitlab+Jenkins学习之路(一)之Git基础 Gitlab+Jenkins学习之路(二)之gitlab部署 Gitlab+Jenkins学习之路(三)之g ...

  3. Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份

    一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...

  4. Gitlab+Jenkins学习之路(八)之发布maven项目及按版本发布

    一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...

  5. Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布

    思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...

  6. Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat

    一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...

  7. jenkins学习笔记

    Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建.测试和部署等功能.本系列博客以 windows 10 环境为例 1 安装 ...

  8. Jenkins 学习笔记(三):我们的JAVA 项目是这么发布的

    发布拓扑 1. 拓扑图 2. 流程说明: Git 插件从 Git Server 上面拉取源代码. Maven 插件将源代码安装我们设定的指令进行编译打包,存放于项目的 WorkSpace. Publi ...

  9. Jenkins 学习笔记(二):很简单的发布一次

    发布思路:从 github 拉取一些文件,然后推送到 Target server 的某个目录. 准备 1. Jenkins 需要安装的插件:『 Publish over SSH 』 2. 全局配置:系 ...

随机推荐

  1. 429. N-ary Tree Level Order Traversal - LeetCode

    Question 429. N-ary Tree Level Order Traversal Solution 题目大意: N叉树,返回每层的值,从上到下,从左到右 思路: 利用队列遍历这个N叉树 J ...

  2. nginx 源码安装配置详解(./configure)

    在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建,"--without"表示禁用模块, ...

  3. NBMiner42.1版本发布,完全解锁30系LHR版本显卡

    2021年下半年,NVIDIA发布了LHR版本显卡,对显卡算力进行了限制. 2022年5月8日,NBMiner发布NBMiner_41.0版本,在最新的内核中加入了100%LHR解锁器,适用于Wind ...

  4. CF1682F MCMF?

    题意: 费用流,其实bushi 给你长为\(n\)的序列\(a\),\(b\).\(a\)单增,\(b\)有正有负. \(q\)次询问\([l,r]\),保证\(\sum\limits_{i=l}^r ...

  5. python中f'{}'用法

    python3.6增加的方法,字符串定义以f开头,可以使用{}包裹变量,方便字符串的定义. 有些时候很懒,碰到写的比较清晰的就直接搬运:https://blog.csdn.net/weixin_387 ...

  6. JavaScript中的??和?.和??=操作符

    JS中两种不常使用但挺实用的操作符:??和?. 一起来了解并学会使用它们吧: 空值合并操作符:?? 只有当操作符左侧为null或undefined时才会返回操作符右侧的值,否则返回左侧的值. eg: ...

  7. python之单元测试unittest

    一.unittest主要内容 主要核心部分:test case, test suite, test runner, test fixture 二.实例 my_class.py文件如下: class F ...

  8. web自动化之元素定位篇

    一.web自动化元素定位的方式有8种.------腾讯课堂 1.1 id定位: 1.2 class定位: 1.3 classname定位 1.4 tag_name 1.5

  9. 使用HBuilder X编辑器安装终端窗口插件未响应的解决方案

    一.打开HBuilder X根目录 依次找到main.js HBuilderX \ plugins \ builtincef3terminal \ script \ main.js 二.编辑main. ...

  10. ms12-020漏洞

    一.环境说明 kali linux windows 7 sp1 二.ms12-020漏洞利用 msf5 exploit(windows/browser/ms10_002_aurora) > se ...