Jfrog Maven jenkins pipeline 流水线 培训 简单实验
1. 公司购买了一套jfrog artifactory ,然后厂商组织了一次培训 本次简单记录一下 jenkins和jfrog 二进制仓库的简单连接使用
2. 前期环境准备.
scp jdk的tar包以及 jenkins的war包到linux机器.
安装git
yum install -y git
3. 安装jenkins
解压缩tar包
tar -xvf jdk-8u121-linux-x64.tar.gz
增加环境变量
vim ~/.bash_profile
增加内容
export JAVA_HOME=/jfrog/jdk-8u121
环境变量生效
source ~/.bash_profile
运行 jenkins
java -jar jenkins.war
4. 初始化jenkins
获取jenkins的密码
vim /root/.jenkins/secrets/initialAdminPassword
安装推荐的初始化包

5. 安装实验需要的插件
主要有:
artifactory
groovy
groovy postbuild
maven
6. 在jfrog artifactory 创建 maven 仓库

new 一个

可以定义两个 ,一个是 release 一个snapshot的
6. 创建一个 jenkins的任务

选择为pipeline 的方式 输入名称,选择流水线, 然后 确定即可.

进行配置

输入 测试用的 脚本
node {
def server = Artifactory.newServer url: SERVER_URL, credentialsId: CREDENTIALS
def rtMaven = Artifactory.newMavenBuild()
stage 'Build'
git url: 'https://github.com/wj20160308/project-examples.git'
stage 'Artifactory configuration'
def Java_home=tool name: 'jdk1.8', type: 'jdk'
env.JAVA_HOME=Java_home
rtMaven.tool = MAVEN_TOOL // Tool name from Jenkins configuration
rtMaven.deployer releaseRepo:'wangj-release-local', snapshotRepo:'wangj-snapshots-local', server: server
rtMaven.resolver releaseRepo:'libs-release', snapshotRepo:'libs-snapshot', server: server
rtMaven.deployer.addProperty("unit-test", "pass").addProperty("qa-team", "platform", "ui")
def buildInfo = Artifactory.newBuildInfo()
buildInfo.env.capture = true
stage 'Exec Maven'
rtMaven.run pom: 'maven-example/pom.xml', goals: 'clean install', buildInfo: buildInfo
stage 'Publish & Scan'
step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
if (reportOnTestsForBuild ()) {
currentBuild.result = 'UNSTABLE'
}
server.publishBuildInfo buildInfo
}
@NonCPS
def reportOnTestsForBuild () {
def failedTests = []
def build = manager.build
if (build.getAction(hudson.tasks.junit.TestResultAction.class) == null) {
println "No Tests"
return true
}
def result = build.getAction(hudson.tasks.junit.TestResultAction.class).result
if ((result == null)) {
println "No test results"
return true
} else {
println "Failed test count: " + result.getFailCount()
println "Passed test count: " + result.getPassCount()
failedTests = result.getFailedTests()
failedTests.each { test ->
println test.name
}
return (result.getFailCount())
}
}
插入脚本的位置为--- 并且取消掉 沙盒运行 避免出现bug

注意要修改 脚本里面的参数 比如 releaseRepo 里面的 对象.
然后根据脚本里面的内容进行添加 参数
SERVER_URL 定义字符参数即可

另外一个 需要定义为:

这个里面需要输入 jfrog artifactory的用户密码
还有一个 MAVEN_TOOL的参数 定义上.

需要在全局工具配置中增加maven

然后新增 maven 与参数对应上

设置完成后 进行build

编译过程中 可以查看 控制台输出

Jfrog Maven jenkins pipeline 流水线 培训 简单实验的更多相关文章
- jfrog artifactory jenkins pipeline 集成
1. 预备环境 artifactory ( 开源版本 ) maven jenkins jenkins artifactory plugin (在插件管理安装即可) 2. 配置artifactory ...
- Kubernetes DevOps: Jenkins Pipeline (流水线)
要实现在 Jenkins 中的构建工作,可以有多种方式,我们这里采用比较常用的 Pipeline 这种方式.Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于 ...
- jenkins pipeline 流水线生产
jenkins pipeline : pipeline { agent any parameters { string(name: 'git_version', defaultValue: 'v1.1 ...
- 使用Jenkins pipeline流水线构建docker镜像和发布
新建一个pipeline job 选择Pipeline任务,然后进入配置页面. 对于Pipeline, Definition选择 "Pipeline script from SCM" ...
- jenkins的流水线pipeline+项目实验php
声明:实验环境使用Jenkins的应用与搭建的环境 新建一个流水线 pipeline脚本语法架构 node('slave节点名'){ def 变量 #def可以进行变量声明 stage('阶段名A') ...
- 基于Jenkins Pipeline的ASP.NET Core持续集成实践
最近在公司实践持续集成,使用到了Jenkins的Pipeline来提高团队基于ASP.NET Core API服务的集成与部署效率,因此这里总结一下. 一.关于持续集成与Jenkins Pipelin ...
- Jenkins pipeline job 根据参数动态获取触发事件的分支
此文需要有Jenkins pipeline job 的简单使用经验 场景 我们日常的测试函数, 一般是不能仅仅在本地跑的,还需要一个公共的跑测试的环境,作为合并新的PR的依据. 如果用Jenkins ...
- Jfrog Artifactory jenkins 流水线使用docker的方式培训[暂未成功]
1. 创建jenkins的流水线 2. 创建artifactory的镜像仓库 3. 创建generic的仓库上传需要的 war包还有tar包. 4. 修改pipeline的 脚本 主要修改的地方. 修 ...
- 【07】Jenkins:流水线(Pipeline)
写在前面的话 个人认为 Pipeline 在 Jenkins 中算是一个优化性功能,它能够将我们的构建服务的整个过程流程化,这意味着当我们在执行到某一步的时候,可以添加询问,提示我们是否继续运行下一步 ...
随机推荐
- PCB (5) 创建自己的原件库
创建如何创建 创建原理图元器件库 创建器件原理图 创建器件PCB 如何创建器件PCB 1自己画 2修改现有 3联合PCB和原理图 1创建原理图元器件库 2创建器件原理图 画图形 从其他复制修改原理图 ...
- 马哥Python视频
链接:https://pan.baidu.com/s/1KMXqdXlaIjZ3OaZ-PUwE9A 密码私聊我
- springboot跨域配置
前言: 当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request).比如说,域名A ( http://dom ...
- shell编程之函数
一.函数定义和调用 函数是Shell脚本中自定义的一系列执行命令,一般来说函数应该设置有返回值(正确返回0,错误返回非0).对于错误返回,可以定义其他非0正值来细化错误.使用函数最大的好处是可避免出现 ...
- 编程实现类似Linux下cp功能
MyCP的代码实现 一.题目要求: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bi ...
- AliOS-Things ESP8266 编译下载
首先:环境搭建,可以参照https://github.com/alibaba/AliOS-Things/wiki/Quick-Start.zh:我采用的是linux系统: 其次:一般项目文件夹放置在A ...
- 在IIS上部署你的ASP.NET Core项目 (转载)
概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...
- C#析构函数 (转载)
一.C#析构函数 1. 析构函数的定义与注意的问题析构函数用于释放被占用的系统资源.析构函数的名字由符号“-”加类名组成.使用析构函数时,应该注意下面的问题: 只能在类中使用析构函数,不能在结构中使用 ...
- 小程序学习-iPhone X适配
一. 安全区域(safe area) 与iPhone6/6s/7/8相比,iPhone X 无论是在屏幕尺寸.分辨率.甚至是形状上都发生了较大的改变,下面以iPhone 8作为参照物,先看看iPho ...
- odoo订餐系统之菜单设计
1.model类的设计 class MyLunchProduction(osv.Model): _name = "mylunch.production" _description ...