目录
一、实验
1.Jenkins使用CD流水线下载Nexus制品
(1)环境
表1 主机
主机 | 架构 | 版本 | IP | 备注 |
jenkins | jenkins主节点 | 2.414.2 | 192.168.204.15:8080 | gitlab runner (从节点) |
gitlab | gitlab 主节点 | 12.10.14 | 192.168.204.8:82 | jenkins slave (从节点) |
sonarqube | 9.6 | 192.168.204.8:9000 | ||
tomcat | nexus | 3.63 | 192.168.204.13:8081 |
(2)Jenkins新建CD流水线
(3)新建视图
(4)查看视图
(5)添加字符参数
(6)添加选项参数
(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} "
}
(8)手动构建CD流水线项目
(9)Blue Ocean 查看
(10)查看日志,已成功下载制品
(11)查看Nexus,下载的制品与仓库里的制品保持一致