持续集成交付CICD:Jenkins使用CD流水线下载Nexus制品

目录

一、实验

1.Jenkins使用CD流水线下载Nexus制品


一、实验

1.Jenkins使用CD流水线下载Nexus制品

(1)环境

表1 主机

主机架构版本IP备注
jenkins

jenkins主节点      

2.414.2192.168.204.15:8080

 gitlab runner

(从节点)

gitlab

gitlab 主节点       

12.10.14192.168.204.8:82

  jenkins slave

(从节点)

sonarqube9.6192.168.204.8:9000
tomcatnexus3.63192.168.204.13:8081

(2)Jenkins新建CD流水线

4c0721bd2499483da15dba2ae70d7462.png

(3)新建视图

e23a3738a98540ccb98b6f097b9d882e.png

(4)查看视图

8f204adfa0b344199a0cd62a7e561e1f.png

(5)添加字符参数

a2e57d1463ee4cb39c21439c94b3b1aa.png

(6)添加选项参数

e2b4e6bc469d437fa32cfe711758af24.png

(7)修改流水线代码

"PullArtifacts"阶段通过2个if条件判断项目类型,下载制品函数PullArtifacts()通过wget方式下载制品

pipeline {
    agent { label "build" }
    stages{
        stage("PullArtifacts"){
            steps{
                script{
                    repoName = "${JOB_NAME}".split("/")[0]
                    projectName ="${JOB_NAME}".split("/")[-1].split("_")[0]

                    if ("${env.projectType}" == "maven"){
                        type="jar"
                    }
                    if ("${env.projectType}" == "npm"){
                        type="tar.gz"
                    }
                    PullArtifacts("${env.releaseVersion}",projectName,repoName,type)
                }
            }
        }
        stage("DeployHost"){
            steps{
                script{
                    print("DeployHost")
                }
            }
        }
        stage("ServiceCtrl"){
            steps{
                script{
                    print("ServiceCtrl")
                }
            }
        }
        stage("HealthCheck"){
            steps{
                script{
                    print("HealthCheck")
                }
            }
        }
    }
}


//下载制品
def PullArtifacts(version,projectName,repoName,type){
    repoUrl = "http://192.168.204.13:8081/repository"
    pkgPath = "${repoUrl}/${repoName}/${projectName}/${version}/${projectName}-${version}.${type}"
    sh "wget --http-user=admin --http-passwd=Admin123 ${pkgPath} "
}

62c3431beefe43bfbe4870b72e630d46.png

(8)手动构建CD流水线项目

2fdc93de7156415ea18ab35c8bfa1e0c.png

(9)Blue Ocean 查看

e586ae6b5ce44bd78a341036ee6ff87d.png

(10)查看日志,已成功下载制品

5047ec1b4f974818a0707168ccdb0990.png

(11)查看Nexus,下载的制品与仓库里的制品保持一致

fc42caa5c7fb42408c644191beed5159.png

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值