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

安装推荐的初始化包

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

5. 安装实验需要的插件

主要有:

artifactory
groovy
groovy postbuild
maven

6. 在jfrog artifactory 创建 maven 仓库

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

new 一个

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

可以定义两个 ,一个是 release 一个snapshot的

6. 创建一个 jenkins的任务

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

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

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

进行配置

Jfrog Maven 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

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

注意要修改 脚本里面的参数 比如 releaseRepo 里面的 对象.

然后根据脚本里面的内容进行添加 参数Jfrog Maven jenkins pipeline 流水线 培训 简单实验

SERVER_URL 定义字符参数即可

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

另外一个 需要定义为:

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

这个里面需要输入 jfrog artifactory的用户密码

还有一个 MAVEN_TOOL的参数 定义上.

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

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

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

然后新增 maven 与参数对应上

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

设置完成后 进行build

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

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

Jfrog Maven jenkins pipeline 流水线 培训 简单实验

上一篇:教你用Cordova打包Vue项目


下一篇:dfs+记忆化搜索,求任意两点之间的最长路径