【持续集成】GIT+jenkins+snoar——jenkins发布php、maven项目

一.持续集成

1.1 什么是持续集成?

  continuous integration (CI),持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员,每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化构建(包括编译、发布、自动化测试)来验证,从而尽快的发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

1.2 持续集成最佳实践

  • 维护一个单一的代码库
  • 使构建自动化
  • 执行测试是构建的一部分
  • 集成日志及历史记录
  • 使用统一的依赖包管理库
  • 每天至少集成一次

二. jenkins

2.1 什么是jenkins

  Jenkins is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines,wether your goal is continuous integration,automated testing,or continuous delivery.

  Jenkins 是持续集成、自动测试、持续部署的超级引擎,支持自定义工具集、多种交付通道。

2.2 安装jenkins

 1 #安装依赖
 2 [[email protected] ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
 3 #下载Jenkins包
 4 [[email protected] src]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.32.3-1.1.noarch.rpm
 5 #rpm安装
 6 [[email protected] src]# rpm -ivh jenkins-2.32.3-1.1.noarch.rpm
 7 #启动Jenkins
 8 [[email protected]node2 src]# systemctl start jenkins
 9 #查看端口是否启动
10 [[email protected] src]# netstat -lntup  tcp6       0      0 :::8080                 :::*                    LISTEN      17737/java 

2.3 访问jenkins页面

打开浏览器:http://192.168.56.12:8080

输入密码:

1 #查看页面上提供的该文件内容(默认密码)
2 [[email protected] src]# cat /var/lib/jenkins/secrets/initialAdminPassword
3 8afe5fe9dd7a48e0a1817b287b627dfc

选择安装默认插件或者直接关闭

看到以上界面,Jenkins就已成功安装

2.4 安装Jenkins插件

1 #将插件移动到指定目录下
2 [[email protected] src]# mv plugins.tar.gz  /var/lib/jenkins/
3 #进入指定目录
4 [[email protected] src]# cd /var/lib/jenkins/
5 #解压插件
6 [[email protected] jenkins]# tar xf plugins.tar.gz7 #授权8 [[email protected] jenkins]# chown -R jenkins.jenkins plugins
9 #重启服务
10 [[email protected] plugins]# systemctl restart jenkins

2.5 Jenkins配置

1 #编辑配置文件
2 [[email protected] jenkins]# vim /etc/sysconfig/jenkins
3 #生产中建议使用Jenkins
4 29 JENKINS_USER="root"

2.6 Jenkins目录

/var/lib/jenkins            主目录

/etc/init.d/jenkins           启动文件

/var/cache/jenkins/           程序文件

/var/log/jenkins/            日志文件

三.发布PHP项目

丢弃旧的构建:保存10天的

找到GIT的项目URL(随便选的)

进项目界面,再点击 deploy keys

将那个KEY,enable一下

1 #在另一台机器上创建一个放代码的目录
2 [[email protected] ~]# mkdir -p /data/www/php-deploy

点击立即构建

 1 #查看构建后的代码
 2 [[email protected] php-deploy]# ll
 3 total 4
 4 -rw-r--r-- 1 root root 16 May 14 01:48 README.md
 5 #查看Jenkins拉代码的目录
 6 [[email protected] php-deploy]# pwd
 7 /var/lib/jenkins/workspace/php-deploy
 8 #查看构建后是否同步成功
 9 [[email protected] ~]# ll /data/www/php-deploy/
10 total 4
11 -rw-r--r-- 1 root root 16 May 14  2017 README.md

至此,PHP项目就已成功发布。

四.发布maven项目

往gitlab上,上传一个maven项目:

 1 #进入项目目录
 2 [[email protected] ~]# cd java2
 3 #初始化成git仓库
 4 [[email protected]node1 java2]# git init
 5 Initialized empty Git repository in /root/java2/.git/
 6 #添加
 7 [[email protected]node1 java2]# git add .
 8 #提交
 9 [[email protected] java2]# git commit -m "first commit"
10 [master (root-commit) 3bad291] first commit
11  3 files changed, 100 insertions(+)
12  create mode 100644 pom.xml
13  create mode 100644 src/main/java/com/ghz/testweb/App.java
14  create mode 100644 src/test/java/com/ghz/testweb/AppTest.java
15 #远程仓库
16 [[email protected] java2]# git remote add origin [email protected]192.168.56.11:root/java-maven.git
17 #上传
18 [[email protected] java2]# git push origin master

 1 #手动安装maven
 2 [[email protected] ~]# tar xf apache-maven-3.3.9-bin.tar.gz
 3 #放到/usr/local下
 4 [[email protected] ~]# mv apache-maven-3.3.9 /usr/local/
 5 #设置环境变量
 6 [[email protected] bin]# export PATH="$PATH:/usr/local/apache-maven-3.3.9/bin"
 7 #添加到环境变量文件
 8 [[email protected] bin]# echo ‘export PATH="$PATH:/usr/local/apache-maven-3.3.9/bin"‘ >> /etc/profile
 9 #查看mvn版本
10 [[email protected] bin]# mvn -v
11 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
12 Maven home: /usr/local/apache-maven-3.3.9
13 Java version: 1.8.0_131, vendor: Oracle Corporation
14 Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64/jre
15 Default locale: en_US, platform encoding: UTF-8
16 OS name: "linux", version: "3.10.0-327.36.3.el7.x86_64", arch: "amd64", family: "unix"17 #修改镜像 18 [[email protected] bin]# vim /usr/local/apache-maven-3.3.9/conf/settings.xml  <?xml version="1.0" encoding="UTF-8"?>  <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  <mirrors>   <mirror>              <id>faxuan</id>              <mirrorOf>*</mirrorOf>              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>          </mirror>      </mirrors>          <profiles>           <profile>              <id>default</id>              <repositories>                  <repository>                      <id>public</id>                      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>                      <releases>                          <enabled>true</enabled>                      </releases>                      <snapshots>                          <enabled>true</enabled>                      </snapshots>                  </repository>              </repositories>          </profile>  </profiles>      <activeProfiles>          <activeProfile>default</activeProfile>      </activeProfiles>  </settings

 1 #查看构建结果
 2 [[email protected] target]# pwd
 3 /var/lib/jenkins/workspace/java-maven/target
 4 [[email protected]node2 target]# ll
 5 total 8
 6 drwxr-xr-x 3 root root   16 May 14 04:36 classes
 7 drwxr-xr-x 2 root root   27 May 14 04:36 maven-archiver
 8 drwxr-xr-x 3 root root   34 May 14 04:36 maven-status
 9 -rw-r--r-- 1 root root 2431 May 14 04:36 original-testweb-v1.4.jar
10 drwxr-xr-x 2 root root   79 May 14 04:36 surefire-reports
11 drwxr-xr-x 3 root root   16 May 14 04:36 test-classes
12 -rw-r--r-- 1 root root 2658 May 14 04:36 testweb-v1.4.jar

【开源是一种精神,分享是一种美德】

— By GoodCook

— 笔者QQ:253097001

— 欢迎大家随时来交流

—原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

时间: 2024-10-16 10:13:40

【持续集成】GIT+jenkins+snoar——jenkins发布php、maven项目的相关文章

gitlab+jenkins+maven+docker持续集成(六)——.Jenkins获取git tags代码进行持续集成

GitFlow的工作流 如上图所示,在开发工作中,不同的代码分支对应着项目或产品的不同形态,围绕特定形态的人力投入也不相同.随着时间的推进, 我们在 开发分支 中合并产品的功能实现,产品的功能逐步完善. 当产品功能完善到一定阶段,可以交付给测试团队进行内部测试时,产品代码可以合并到 测试分支(注意,上图未体现测试分支,实际中是否需要测试分支需要具体而定),编译打包测试. 经过若干迭代测试,功能稳定成熟,产品可以发布,此时,代码合并到主干(master)分支,用于发布(TAG标记). 所以这里用T

持续集成(CI)工具------Hudson/Jenkins(Continuous Integration)安装与配置具体解释

本文同意转载.但请标明出处:http://blog.csdn.net/wanghantong/article/40985653/, 版权全部 文章概述: 一. 描写叙述了持续集成工具Hudson的安装与配置 二. 描写叙述了Git .Maven环境的安装与配置 三. 描写叙述了扩展邮件通知及其配置方法 四. 描写叙述了jira的配置 一.Hudson简单介绍 Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具.用于监控持续的软件版本号公布/測试项目 下载地址:http://

持续集成与自动化部署 - jenkins &amp; sonar代码质量管理平台 部署和基础使用(五)

1 jenkins 安装参考链接 1.1 安装jenkins [[email protected] ~]# yum install -y java-1.8.0 [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo [[email protected] yum.repos.d]# rpm --import

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

一.搭建gitlab ps:不是这方面的专家,主要还是一键式安装为主. 1.进入官网:https://about.gitlab.com/gitlab-com/ 2.选择自己的操作系统:我这边选择的ubuntu 14 3.根据提示的方式进行安装(不过一般都安装不成功) ------------------------------------------------------- 所以我自己选择自载deb包,利用dpkg -i命令进行安装 1.可以先根据官方提示安装依赖包,一般是 openssh-s

Maven 学习(二)使用eclipse构建Maven项目及发布一个Maven项目

开发环境: Eclipse Jee Mars(截止2015年12月1日目前的最新版eclipse4.5),下载地址:http://www.eclipse.org/downloads/ 因为此版本已经集成了M2E的插件,再者Mars版本的eclipse也比较稳定,可以省一些不必要的麻烦. 一.构建Maven项目 用eclipse构建maven项目之前我们需要为eclipse做一些必要的配置 一些必要的配置 1.点击eclipse菜单栏的Window下的preferences,选择Maven菜单 2

Elipse中发布一个Maven项目到Tomcat

对于maven初学者的我,经常遇到一个问题就是,maven项目创建成功后,本来已经添加了jar的依赖,但是发布到Tomcat中就是没有jar包存在, 启动Tomcat总是报没有找到jar包,可项目结构中确实已经有jar了,一直很郁闷,所以记录下来. 1.首先确定好我们已经安装好maven需要的环境,并且已经创建好一个Maven依赖的Web项目,可以查看前几篇maven的学习内容搭建maven项目     一个完整的maven依赖的web项目 大家看,我这里只依赖了oracle的驱动包,但是发布到

持续集成高级篇之Jenkins Pipeline git拉取

系列目录 PipeLine中拉取远程git仓库 前面讲自由式任务的时候,我们可以看到通过自由式job里提供的图形界面配置git拉取非常方便的,实际上使用PipeLine也并不复杂.这一节我们展示一下如何在PipeLine任务中拉取git仓库代码. node{ stage("check out"){ git credentialsId: '3c210def-c000-4e2a-9b2d-838986a6b172', url: 'https://github.com/mrtylerzhou

持续集成与自动化部署 - jenkins与sonar、gitlab集成 (六)

1 将jenkins和sonar集成 1.1 安装sonar 插件 jenkins上安装sonarqube plugin ,如果没有就安装sonarqube scanner for jenkins这个插件. 1.2 关联sonar 插件 1.2.1 系统设置 设置sonar地址 系统管理 > 系统设置 > Add SonarQube > sonarqube servers 修改如下: 1.2.2 全局设置 设置sonar扫描器位置 系统管理 > Global Tool Config

gitlab+jenkins+maven+docker持续集成(七)——.Jenkins Pipeline持续集成

Pipeline的几个基本概念: Stage: 阶段,一个Pipeline可以划分为若干个Stage,每个Stage代表一组操作.注意,Stage是一个逻辑分组的概念,可以跨多个Node. Node: 节点,一个Node就是一个Jenkins节点,或者是Master,或者是Agent,是执行Step的具体运行期环境. Step: 步骤,Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供 新建pipeline项目 进入配置 这里要参考