gitlab+jenkins学习笔记
一、部署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学习笔记的更多相关文章
- Jenkins 学习笔记
Jenkins 的内容网站蛮多的,但是一开始我看起来确实很费劲.似乎好多东西都是悬空的,没有把底层的信息交代清楚. 我把自己对于 Jenkins 的探索过程记录下来,如下. 目录 Jenkins 学习 ...
- Gitlab+Jenkins学习目录
Gitlab+Jenkins基础篇 Gitlab+Jenkins学习之路(一)之Git基础 Gitlab+Jenkins学习之路(二)之gitlab部署 Gitlab+Jenkins学习之路(三)之g ...
- Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份
一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...
- Gitlab+Jenkins学习之路(八)之发布maven项目及按版本发布
一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...
- Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布
思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...
- Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat
一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...
- jenkins学习笔记
Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建.测试和部署等功能.本系列博客以 windows 10 环境为例 1 安装 ...
- Jenkins 学习笔记(三):我们的JAVA 项目是这么发布的
发布拓扑 1. 拓扑图 2. 流程说明: Git 插件从 Git Server 上面拉取源代码. Maven 插件将源代码安装我们设定的指令进行编译打包,存放于项目的 WorkSpace. Publi ...
- Jenkins 学习笔记(二):很简单的发布一次
发布思路:从 github 拉取一些文件,然后推送到 Target server 的某个目录. 准备 1. Jenkins 需要安装的插件:『 Publish over SSH 』 2. 全局配置:系 ...
随机推荐
- Java泛型类型擦除问题
以前就了解过Java泛型的实现是不完整的,最近在做一些代码重构的时候遇到一些Java泛型类型擦除的问题,简单的来说,Java泛型中所指定的类型在编译时会将其去除,因此List 和 List 在编译成字 ...
- git rename branch
git 不能直接重命名远程分支,如果需要重命名则执行以下步骤操作: 重命名本地分支 删除远程分支 推送本地分支(重命名后的)到远程 额外说明: 1. 重命名后的分支也会保留历史 commit(应该是本 ...
- vue2 sass主题一键修改功能
1.先创建一个 _theme.scss文件 作为各类主题颜色的整理 $themes: ( light: ( //字体 font_color1: #414141, font_color2: white, ...
- 行列式&矩阵树定理
行列式: 参考 oi-wiki 定义 对于一个\(n*n\)的矩阵A行列式取值(标量) \(det(A)=|A|=\sum\limits_p(-1)^{\tau(p)}\prod\limits_{i= ...
- SQL Server 2019企业版和标准版的区别?
来源公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485400&idx=1&a ...
- 拥抱Spring全新OAuth解决方案
以下全文 Spring Authorization Server 简称为: SAS 背景 Spring 团队正式宣布 Spring Security OAuth 停止维护,该项目将不会再进行任何的迭代 ...
- 【lora无线数传通信模块】亿佰特E22串口模块用于物联网地震预警传感通信方案
物联网地震预警项目介绍: 地震,俗称地动.它像平常的刮风下雨一样,是一种常见的自然现象,是地壳运动的一种表现,即地球内部缓慢积累的能量突然释放而引起的地球表层的振动.据统计,5级以上地震就能够造成破坏 ...
- 如何实现Springboot+camunda+mysql的集成
本文介绍基于mysql数据库,如何实现camunda与springboot的集成,如何实现基于springboot运行camunda开源流程引擎. 一.创建springboot工程 使用IDEA工具, ...
- 23.Nginx+keepalived负载均衡高可用
Nginx+keepalived负载均衡高可用 结构图 环境: 主 服务器:192.168.239.10 备 服务器:192.168.239.20 Web 服务器1:192.168.239.40 We ...
- Flex & Bison 开始
Flex 与 Bison 是为编译器和解释器的编程人员特别设计的工具: Flex 用于词法分析(lexical analysis,或称 scanning),把输入分割成一个个有意义的词块,称为记号(t ...