自动化部署jenkins

使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

南楼画角 提交于 2019-11-29 01:55:53
前言 上一篇随笔 Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一) 介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以及怎么将自己的模块上传至nexus私服,供其他模块引用。下面将主要介绍如何利用Jenkins、SVN、Tomcat以及Sonar来完成项目的自动化编译、测试和发布,以及检查项目的代码质量。 利器Jenkins Jenkins源于另外一个持续集成工具Hudson,Hudson在oracle收购sun之前,是开源社区在开发和维护,oracle收购sun之后声明拥有hudson的商标使用权,后来开发hudson的开源力量只能重新起个名字“Jenkins”来继续开发,原Hudson则由oracle持续维护,但更新速度比较慢。 jenkins地址: http://jenkins-ci.org/ hudson地址: http://hudson-ci.org/ 可以看到hudson官网右下角oracle的版权logo。我们这里就使用Jenkins来搭建持续集成环境。 首先从官方上下载jenkins, http://mirrors.jenkins-ci.org/war/ 可以选择不同的版本。下载完成后放置在服务器某个目录下,cd到该目录下,执行: java -jar jenkins.war

前端 Jenkins 自动化部署

蹲街弑〆低调 提交于 2019-11-28 18:28:31
这两天折腾了一下 Jenkins 持续集成,由于公司使用自己搭建的 svn 服务器来进行代码管理,因此这里 Jenkins 是针对 svn 服务器来进行的配置,Git 配置基本一致,后面也介绍了下针对 Github 管理的项目的 Jenkins 配置 之前项目每次修改之后都需要本地 npm run build 一次手动发布到服务器上方便测试和产品查看,有了Jenkins持续集成之后只要 svn 或者 git 提交之后就会自动打包,很方便,此次记录以备后询。 声明: 后面的项目地址与打包地址都是使用 my - demo ,自行修改; 另外还有路径等,根据自己情况自行修改; 1. 安装 1.1 安装 Nginx 可以直接去官网下直接下载,解压缩 start nginx 就可以使了,常用命令: start nginx # 启动 nginx -s reload # 修改配置后重新加载生效 nginx -s reopen # 重新打开日志文件 nginx -t # 配置文件检测是否正确 1.2 安装 Jenkins 从官网下载文件安装之后,我这里安装到 C : \Jenkins (Mac 不用在意),默认端口 8080,这时候浏览器访问 localhost : 8080 就能访问 Jenkins 首页,这里注意如果不安装到 C 盘根目录有些插件安装会出错

iOS-利用Jenkins持续集成项目

本小妞迷上赌 提交于 2019-11-28 18:26:07
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段。用户们都是很挑剔的。如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一批的用户在使用中纷纷出现闪退bug,轻则,很可能前期推广砸的钱都白费了,重则,口碑不好,未来也提升不起用户量来了。静下心来分析一下问题的原因,无外乎就是质量没有过关就上线了。除去主观的一些因素,很大部分的客观因素我觉得可以被我们防范的。根据大神们提出的一套开发规范建议,CI + FDD,就可以帮助我们极大程度的解决客观因素。本文接下来主要讨论 Continuous Integration 持续集成(简称CI) 目录 1.为什么我们需要持续集成 2.持续化集成工具——Jenkins 3.iOS自动化打包命令——xcodebuild + xcrun 和 fastlane - gym 命令 4.打包完成自动化上传 fir / 蒲公英 第三方平台 5.完整的持续集成流程 6.Jenkins + Docker 一. 为什么我们需要持续集成 谈到为什么需要的问题,我们就需要从什么是来说起。那什么是持续集成呢。 持续集成是一种软件开发实践:许多团队频繁地集成他们的工作,每位成员通常进行日常集成,进而每天会有多种集成。每个集成会由自动的构建(包括测试)来尽可能快地检测错误

CentOS 上 Jenkins 的安装

旧巷老猫 提交于 2019-11-28 12:46:50
Jenkins 的前身是 Hudson。 Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。 官方文档: https://jenkins.io/zh/doc/ 安装方式大致分两种,war 包方式和 yum 方式(本质还是 war 包)。 Jenkins 需要 JDK 环境 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html # 解压 tar -zxf /opt/jdk-8u221-linux-x64.tar.gz -C /opt/ # 配置JDK环境变量 vi /etc/profile # JAVA_HOME # export 为把变量导出为全局变量 export JAVA_HOME=/opt/jdk1.8.0_221/ # . 表示当前路径,: 表示分隔符 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH # $PATH 表示取出当前系统中的值,类似于 i = 3 + i export PATH=$JAVA_HOME

jenkins自动化部署微服务与tomcat项目

試著忘記壹切 提交于 2019-11-28 00:35:48
1:利用好工具确实能事半功倍,最重要的是减少重复劳动。 jenkins的安装就不再重复提取说明了,网上安装步骤太多了。 (1)下面来记录下部署微服务项目的步骤: 脚本:demo.sh #!/bin/bash #pring cloud工程自动关闭 #(如果不加这个变量,任务执行成功之后Spring Cloud工程会自动停止) BUILD_ID=demo #先删除之前启动的进程 echo "kill demo... start" #根据自己的工程的jar包查找进程 #PROCESS="$(ps -ef|grep demox|grep -v grep|awk '{print $2}')" PROCESS="$(ps -ef | grep -E 'demo-eureka|demo-api|demo-system|demo-sso|demo-user|demo-web' | grep -v grep | awk '{print$2}' )" if [[ -n $PROCESS ]]; then echo "demo running... start kill..." kill -9 $PROCESS else echo "demo not running" fi echo "kill demo... end" #为了方便启动,将打好的jar包复制到同一个目录下 JAR_PATH="/home

Jenkins搭建教程

二次信任 提交于 2019-11-27 11:19:00
一、Jenkins简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,它提供了数百个插件来支持构建、部署、自动化任何项目,使软件的持续集成变成可能。 我刚还换新工作,老大叫我部署Jenkins才开始接触这个,下面就聊聊我的搭建过程吧~~ 二、环境部署 我是在Ubuntu18.04服务器上搭建的 Java环境 因为Jenkins是基于Java开发的,所以一定要有Java环境 # sudo apt-get install openjdk-8-jre # sudo apt-get install openjdk-8-jdk # vi /etc/profile #添加环境变量 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH # source /etc/profile git # sudo apt-get install git 三、安装 下载Jenkins 可以直接在官网上下载: https:/

Jenkins持续集成教程(一)

醉酒当歌 提交于 2019-11-27 11:18:40
1.目标 1.1 了解jenkins的基本概念 1.2 持续集成的组成部分 1.3 了解jenkins,下载,安装jenkins 1.4 使用jenkins的插件 1.5 jenkins的使用配置 1.6 使用jenkins创建任务并实现自动化集成和部署 1.7 任务状态的监控和邮件通知 2.什么是持续集成(持续集成的基本概念) 2.1 简介 continuous Integration,简称CI。 起因:软件开发复杂度提高,为了团队之间更好的协同工作,保障开发质量。 工作过程:开发人员需经常集成自己的工作成果,每次集成都是通过自动化的构建来完成,包括:自动拉取仓库代码、自动编 译、自动发布、自动测试。为了更快更好的发现问题,提高团队开发效率 大白话:各个开发人员的工作成果不需要在工作一段时间(可能几个星期)后进行将代码集成,jenkins会很频繁的集成代码然后 自动发布测试,能够尽快发现问题。(如果人工集成,集成很耗时耗力,并且集成时间会耗费在开发时间里)。 2.2 核心价值 2.2.1 集成的任意环节都是自动完成,无需人工太多干预 2.2.2 能尽快发现软件的集成问题(因为频繁集成,每一次集成就有可能发现集成问题) 2.2.3 能很快适应需求变更(经常变更需求真的很烦) 2.2.4 减少管理风险 2.3 应用场景 举个例子:小明写个一个月代码,然后合并,花了3天解决冲突

Jenkins Command Line大全[翻译]

余生颓废 提交于 2019-11-26 14:31:24
通用格式 java -jar jenkins-cli.jar [-s JENKINS_URL] command [options...] [arguments...] JENKINS_URL范例: http://192.168.14.56:8080/jenkins/ add-job-to-view 将一个任务加入视图中 java -jarjenkins-cli.jar -s http://192.168.14.56:8080/jenkins/ add-job-to-view VIEW JOB... VIEW:视图名称 JOB:job名称 build 启动build,可以选择是否等待一个工作的完成。除了通用的脚本使用之外,该命令可以被用于在一个job的构建中调用另一个job。使用–s 选项,该命令更改构建输出和中断命令并且会中断job的返回码(返回0表示成功)。使用–f 选项,该命令更改基于输出构建的返回码(返回0表示成功)。但是,跟-s选项不一样,中断命令行不会中断job。(返回码125表示该命令被中断)。使用–c 选项,命令仅在SCM(源代码管理系统)发生改变时执行build。 java -jarjenkins-cli.jar -s http://192.168.14.56:8080/jenkins/ build JOB [-c] [-f] [-p][-r N] [-s] [-v

Jenkins+GitLab自动化部署.Net项目

冷暖自知 提交于 2019-11-26 02:32:27
前言 企业线上环境是.NET Framework,自然使用Windows Server平台。现在需求是要对.NET项目进行自动化持续集成,免得每次手动发布,一台台机器登录,那种痛苦干过的都懂得,繁琐、效率低下、误操作等等。而.Net与Jenkins的结合使用目前要达到完全自动化还是有局限性的,关键是Windows环境,各种命令无法向Linux方便。.NET Core可能会好一些。现有的没办法,得上。 基本组合是Jenkins + Gitlab + Msbuild。实现代码提交、编译、部署。 安装环境与流程 1) Jenkins是java产品,需安装JDK8,Windows server 2012环境。 2) .NET项目需.Net Framework支持,这里选择Framework4.6.1。Nuget解决依赖。构建工具Msbuild,基于VS2019下的Msbuild。以上都基于Windows server 2012。刚开始选择server 2008R2,后面构建打包这种问题,困扰2天,果断换。 3) 代码仓库GitLab。选用Centos7.6。 4) .Net项目持续集成流程: Jenkins操作 1) Jenkins具体安装略,傻瓜式下一步...安装完成。下载见官方网站: https://jenkins.io/download/ ,找到downlaod下载,这里项目基于

Jenkins自动化脚本应用

送分小仙女□ 提交于 2019-11-26 01:44:30
vi project.sh #!/bin/bash #jenkins参数选项 time= date +%Y-%m-%d_%H-%M-%S method=$1 group=$2 branch=$3 #后端tomcat服务ip地址组 ip_value(){ if [[ $group == "group1" ]];then ip_list="192.168.1.20" echo ${ip_list} elif [[ $group == "group2" ]];then ip_list="192.168.1.21" echo ${ip_list} ssh root@192.168.1.10 "echo "enable server web_port/192.168.1.20" | socat stdio /usr/local/src/haproxy/haproxy.sock" ssh root@192.168.1.11 "echo "enable server web_port/192.168.1.20" | socat stdio /usr/local/src/haproxy/haproxy.sock" elif [[ $group == "group3" ]];then ip_list="192.168.1.20 192.168.1.21" echo ${ip_list} fi }