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

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

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/9198936.html