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
编译过程中 可以查看 控制台输出