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
編譯過程中 可以查看 控制台輸出