11、gitlab和Jenkins整合(1)
1、在jenkins上安装git:
因为jenkins需要在gitlab上拉取代码;
具体的git安装,参考"4、git和gitlab的配置——4.2、git编译安装:";
2、在gitlab上配置jenkins服务器上的ssh key:
(1)在jenkins服务器上生成秘钥对:
ssh-keygen
(2)在gitlab上配置jenkins的公钥:
这样jenkins服务器可以连接gitlab上所有的项目;
也可以为jenkins服务器分配一个gitlab用户,在这个gitlab用户上配置jenkins服务器上的公钥,以达到限制jenkins访问项的目的;
3、在jenkins上构建php项目:
将gitlab上的代码发布到服务器上;
(1)创建项目:
1)
2)
(2)配置:
1)配置丢旧的构建:
2)配置 ssh 方式连接gitlab仓库:
A、补充:配置http方式连接gitlab仓库:
a、设置http连接gitlab的用户:
b、设置http连接url:
3)设置构建执行脚本:
这里主要是发布代码的脚本;
(3)发送jenkins服务器的公钥:
一般是将jenkins服务器上的公钥发送到web服务器上,方便构建代码后无密码便可发布;
这里用作实验,将构建后的代码发送到gitlab服务器上;
ssh-copy-id -i ~/.ssh/id_dsa.pub root@172.16.1.90
(4)在web服务器上创建web站点目录:
mkdir -p /data/www/php
(5)构建:
提示:构建时,jenkins会从gitlab上git clone master 仓库到本地的“/var/lib/jenkins/workspace/”目录下,自动生成以
jenkins工程名为名的目录;
(6)查看构建信息:
此时查看web服务器目录下,构建后的web代码已经发布;
ls /data/www/java/
index.html index.php readme
4、构建maven java项目:
(1)maven介绍:
将java项目编译后再发布;
jenkins需要安装Maven Integration plugin;
maven主要是用来解决导入java类依赖的jar,编译java项目主要问题;
maven本地存在仓库,构建时会先从本地仓库查找jar包,如果没有再从远程中央仓库下载jar包存储到本地,然后再利用存储到
本地的jar包进行构建;
(2)maven安装和配置:
1)下载软件包:
cd /tools/
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
2)解压并安装:
tar -xzf apache-maven-3.6.0-bin.tar.gz
cp -a /tools/apache-maven-3.6.0/ /application/maven-3.6.0/
ln -s /application/maven-3.6.0/ /application/maven
3)查看maven的版本号:
/application/maven/bin/mvn --version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /application/maven
Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el
7_6.x86_64/jreDefault locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
4)修改仓库配置:
mkdir /data/maven/
#创建maven本地仓库存储目录;
vim /application/maven/conf/settings.xml
<mirror>
<id>aliyun-maven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun-maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
#默认的中央仓库比较慢,这里改成阿里的maven仓库;
<localRepository>/data/maven</localRepository>
#更改maven的本地仓库路径,默认的仓库路径是${user.home}/.m2/repository;
(3)设置maven所需要的全局参数:
1)maven settings.xml文件路径配置:
2)java_home配置:
提示:yum安装的jdk查看java_home的方法:使用"whereis javac"命令找到javac的位置,然后使用"ls -l"命令找到最后
没有软连接指向的目录;
3)maven_home配置:
(4)创建项目:
(5)项目配置:
1)丢弃旧的构建配置:
2)git仓库配置:
提示:需要将jenkins的公钥加入到gitlab root用户的ssh-key中;需要在gitlab中上传一个使用maven开发的程序包;
3)构建配置:
参数说明:
clean install -D maven.test.skip=true
clean #移除所有上一次构建生成的文件;
install #将包安装至本地仓库,以让其它项目依赖;
maven.test.skip #跳过测试;
4)配置shell脚本发布代码:
A、补充:通过war包发布代码:
a、前提条件:
tomcat需要配置manager服务并创建tomcat管理员用户;
需要在jenkins上安装插件:Deploy to container Plugin;
b、"deploy war/ear to container"配置如下:
(6)构建工程:
1)构建:
2)查看控制台输出:
(7)提示:
如果按照版本进行构建,需要在gitlab中对代码进行打标签,且版本号要和pom.xml中的版本号保持一致;
11、gitlab和Jenkins整合(1)的更多相关文章
- 11、gitlab和Jenkins整合(2)
5.补充: (1)构建说明: 1)Jenkins会基于一些处理器任务后,构建发布一个稳健指数 (从0-100 ),这些任务一般以插件的方式实现. 2)它们可能包括单元测试(JUnit).覆盖率(Cob ...
- [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...
- CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
原文地址https://www.cnblogs.com/kevingrace/p/5651447.html 近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更 ...
- Gitlab+Gerrit+Jenkins完整对接
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...
- gitlab+gerrit+jenkins持续集成框架
1.持续集成之gitlab+gerrit+jenkins 1.1. GitLab 1.1.1. 简介 GitLab 是一个使用使用Ruby on Rails搭建的,用于仓库管理系统的开源项目.使用Gi ...
- gitlab与jenkins的自动化部署(通过webhook与ansilble)
gitlab与jenkins的自动化部署(通过webhook与ansilble) 1.部署介绍 gitlab服务器:192.168.1.49:80jenkins服务器:192.168.1.49:818 ...
- gitlab 与 jenkins 关联
一.搭建 gitlab :https://www.cnblogs.com/carriezhangyan/p/10729158.html 二.搭建jenkins :https://www.cnblogs ...
- 持续集成之④:GitLab触发jenkins构建项目
持续集成之④:GitLab触发jenkins构建项目 一:目的为在公司的测试环境当中一旦开发向gitlab仓库提交成功代码,gitlab通知jenkins进行构建项目.代码质量测试然后部署至测试环境, ...
- django之创建第11个项目-页面整合
目的:将如下众多html页面整合到一个index.html页面中. 百度云盘:django之创建第11个项目-页面整合 用下面的方式实现: <!DOCTYPE html> <head ...
随机推荐
- mysql数据库-备份方式简介与规范
目录 1 应对场景: 2. 备份方式分类 2.1 按备份数据类型划分 2.2 按侵入程度划分 2.3 按备份方式划分 3 备份注意要点 4 还原要点 4.1 定期还原测试,验证备份可用性 4.2 还原 ...
- Java常用集合笔记
最近事情比较少,闲暇之余温习巩固一下Java的一些基础知识,并做一些笔记, Java常用集合, 主要参考的这篇文章:Java常用集合 ArrayList/Vertor 1. ArrayList 的主要 ...
- libevent中的事件机制
libevent是事件驱动的网络库,事件驱动是他的核心,所以理解事件驱动对于理解整个网络库有很重要的意义. 本着从简入繁,今天分析下单线程最简单的事件触发.通过sample下的event- ...
- Step By Step(Lua函数)
Step By Step(Lua函数) 一.函数: 在Lua中函数的调用方式和C语言基本相同,如:print("Hello World")和a = add(x, y).唯一的 ...
- python3操作Kafka
# -- coding: UTF-8 import datetime import json import time from kafka import KafkaProducer producer= ...
- Jmeter - 把提取的响应结果设置成全局变量
1. 用正则表达式从响应结果中提取需要的字符 2.添加BeanShell 后置处理程序,${__setProperty(setcookies,${cookies},)} 用函数定义其为全局变量 3.调 ...
- 安装Linux操作系统过程及出现的问题
写在前面的话:由于是昨天装的,很多图片没来得及及时的保存,只好凭记忆回想,出现的问题只能回忆起大致的操作及应用软件. 另外,目前是小白一枚. 在安装时,我一开始想直接采用硬盘安装,参考帖子:http: ...
- Xilinx FPGA全局介绍
Xilinx FPGA全局介绍 现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产:许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设 ...
- TensorRT 7.2.1 开发概要(上)
TensorRT 7.2.1 开发概要(上) Abstract 这个TysRR7.2.1开发者指南演示了如何使用C++和Python API来实现最常用的深层学习层.它展示了如何使用深度学习框架构建现 ...
- 如何保证Qt状态机的最佳性能
如何保证Qt状态机的最佳性能 How to ensure the best Qt state machine performance 如果您使用Qt进行应用程序开发,并且使用状态机,那么很可能您正在使 ...