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

 編譯過程中 可以查看 控制台輸出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM