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