• 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

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

  • 相关阅读:
    WPS JS宏
    WPS基础
    算法文章收藏
    辩论赛
    物流系统
    C#导出excel复杂表格(单元各合并)
    VUE复杂表格合并
    Linux系统创建一个npm命令行工具
    Java使用技巧记录
    Ubuntu系统安装nodejs及npm
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/9198936.html
Copyright © 2020-2023  润新知