GVKun编程网logo

如何在Jenkins的成功构建中触发参数化构建?(jenkins参数化构建+触发构建)

11

对于想了解如何在Jenkins的成功构建中触发参数化构建?的读者,本文将提供新的信息,我们将详细介绍jenkins参数化构建+触发构建,并且为您提供关于3--Jenkins详解、用户权限、构建mave

对于想了解如何在Jenkins的成功构建中触发参数化构建?的读者,本文将提供新的信息,我们将详细介绍jenkins参数化构建+触发构建,并且为您提供关于3--Jenkins详解 、用户权限、构建maven、参数化构建、DEVOPS 技术实践_04:Jenkins 参数化构建、Jenkins 2.32.3 参数化构建 maven 项目、Jenkins 2.32.3 参数化构建 maven 项目 - java 项目的有价值信息。

本文目录一览:

如何在Jenkins的成功构建中触发参数化构建?(jenkins参数化构建+触发构建)

如何在Jenkins的成功构建中触发参数化构建?(jenkins参数化构建+触发构建)

我有三个管道项目,项目a,项目b和项目c。project-c需要一个参数。成功完成project-a或project-
b时,我想触发带有参数的project-c的构建。

我可以在管道中使用以下代码在project-a和project-b中执行此操作:

stage(''trigger-project-c'') {    def job = build job: ''project-c'', parameters: [[$class: ''StringParameterValue'', name: ''MY_PARAM'', value: ''somevalue'']]}

但这需要两名执行者。我希望project-a或project-b在使用参数运行project-c之前完全完成。

答案1

小编典典

您的管道很可能看起来像这样:

node {  stage(''build'') {    // sh "make"  }  // ...  stage(''trigger-project-c'') {      def job = build job: ''project-c'', parameters: [[$class: ''StringParameterValue'', name: ''MY_PARAM'', value: ''somevalue'']]  }}

通过将所有内容包装在node闭包内部,project-c可以在线触发下游作业,而无需暂停上游作业/释放执行程序。

因此,长时间不做任何事情的事情不应包装在一个node步骤中,以免阻塞执行程序。一个非常相似的情况是使用该input步骤等待用户反馈时。

取而代之的是,您的管道应如下所示,这就是(可以这么说)最佳实践(因为您不会阻塞执行程序):

stage(''build'') {  node {    // sh "make"  }}// ornode {  stage(''build'') {    // sh "make"  }  stage(''unit'') {    // sh "make"  }} // node// note: the following code is _not_ wrapped inside a `node` step stage(''trigger-project-c'') {  def job = build job: ''project-c'', parameters: [[$class: ''StringParameterValue'', name: ''MY_PARAM'', value: ''somevalue'']]}

无需将build步骤包装在内node,即,为其阻塞执行器。对于其他步骤(如sh),管道执行将触发错误并提醒您不能在node分配之外运行。

3--Jenkins详解 、用户权限、构建maven、参数化构建

3--Jenkins详解 、用户权限、构建maven、参数化构建

目录
  • 一、Jenkins
    • 1.安装Jenkins@H_301_6@
    • 2.登录@H_301_6@
    • 3.安装插件@H_301_6@
    • 4.Jenkins中的凭证和远程连接机器@H_301_6@
    • 5.项目所存在的目录@H_301_6@
    • 6.优化@H_301_6@
    • 二、解决jenkins忘记用户密码问题@H_301_6@
    @H_301_6@
  • 三、用户权限 (RBAC权限)
    • 1.授权策略@H_301_6@
    • 2.创建用户和修改密码@H_301_6@
    • 3.创建及管理权限组@H_301_6@
    • 4.分配角色组权限@H_301_6@
    • 5.使用通配符分配权限@H_301_6@
    @H_301_6@
  • 四、Jenkins构建maven
    • 1.配置maven环境@H_301_6@
    • 2.配置maven@H_301_6@
    • 3.安装maven插件@H_301_6@
    • 3. 创建maven仓库@H_301_6@
    @H_301_6@
  • 五、参数化构建@H_301_6@

一、Jenkins

https://pkg.jenkins.io/redhat-stable/

Jenkins是一个自动化部署的工具。依赖于Java开发的,由各种组件组成的一个自动化部署工具

1.安装Jenkins

#1.安装Java
[root@jenkins jenkins]# yum install java-1.8.0-openjdk* -y
 
#2.安装Jenkins
方式一
# 安装Jenkins(推荐,因为yum默认为新版本,不建议安装太新的版本)
[root@jenkins jenkins]]# mkdir packages && cd packages
[root@jenkins jenkins]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.249.1-1.1.noarch.rpm
[root@jenkins jenkins]# yum localinstall -y jenkins-2.249.1-1.1.noarch.rpm
[root@jenkins jenkins]# systemctl restart jenkins

方式二
# yum方式安装需要安装认证 Key
[root@jenkins jenkins]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
# 安装Jenkins
[root@jenkins jenkins]# yum install jenkins
[root@jenkins jenkins]# systemctl restart jenkins

2.登录

[root@jenkins jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
e59b14429016454f8ec2e5e7a34f6449

3.安装插件

#1.安装插件
#添加插件
[root@gitlab jenkins]# tar -xf /opt/plugins.tar.gz -C /var/lib/jenkins
# 授权jenkins用户
[root@gitlab ~]# chown -R jenkins.jenkins /var/lib/jenkins/
#重启
[root@gitlab jenkins]# systemctl restart jenkins.service 

4.Jenkins中的凭证和远程连接机器

# 系统管理  ->  Manage Credentials -> 全局 -> 添加凭据

# Jenkins通过SSH下载代码
1、将Jenkins服务器中的公钥放到GitLab上SSH秘钥
  #测试。可以下载  
[root@k8s-m-03 ~]# git clone git@192.168.15.14:root/xiangmu1.git

2、将Jenkins服务器私钥放到Jenkins凭证(Manage Credentials)之中
    
# Jenkins连接远程机器
	1、系统管理 -> 系统配置 -> SSH remote hosts
	或者
	2、系统管理 -> 系统配置 -> Publish over SSH
    [root@jenkins ~]# cat /root/.ssh/id_rsa 私钥

配置凭证

配置凭证

Jenkins连接远程机器

5.项目所存在的目录

[root@jenkins ~]# cd /var/lib/jenkins/jobs/    #项目目录
[root@jenkins jobs]# ll
total 0
drwxr-xr-x 3 jenkins jenkins 61 Aug 16 15:35 test-dep-01
drwxr-xr-x 3 jenkins jenkins 61 Aug 16 15:13 test-dep-1
[root@jenkins workspace]# pwd
/var/lib/jenkins/workspace    #工程目录,下载代码的目录

6.优化

[root@gitlab updates]# cd /var/lib/jenkins/updates/
[root@gitlab updates]# sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
[root@gitlab updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

#最后,系统管理 --> 插件管理 --> 高级,把站点升级改为国内插件下载地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

二、解决jenkins忘记用户密码问题

#1.找到存密码的文件
[root@jenkins ~]# cd /var/lib/jenkins/users/
[root@jenkins /var/lib/jenkins/users]# ll
total 4
drwx------ 2 jenkins jenkins  24 Aug 13 11:56 mm_7745824900363635554
-rw-r--r-- 1 jenkins jenkins 294 Aug 13 11:55 users.xml

[root@jenkins elainafang_4555949760451263805]# vim mm_7745824900363635554/config.xml 
 #2.将密码内容替换成123456的密码内容   #在网上查看jenkins密码
<passwordHash>#jbcrypt:$2a$10$2LvNPMgFiYAyT/CeE5FwnOUkQz4SbTd9Myq/pWf5qAQtz0MWe6K86</passwordHash>
替换成              <passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>
  
#3.重新加载内面用123456密码登录后在修改密码

三、用户权限 (RBAC权限)

1.授权策略

2.创建用户和修改密码

3.创建及管理权限组

系统管理 —> Manage and Assign Roles —> Manage Roles —> 各个角色(权限组)

Global roles(全局角色): # 管理员等高级用户可以创建基于全局的角色 
Item roles(项目角色):   #  针对某个或者某些项目的角色 ,添加成组
Node roles(节点角色):   # 节点相关的权限

Base:   # 设置成所有的用户都有查看的权限
Alvin:  # 设置以alvin开头的项目有超管权限
Oldboy: # 设置以oldboy开头的项目有超管权限

4.分配角色组权限

系统管理 —> Manage and Assign Roles —> Assign Roles

5.使用通配符分配权限

.* : 匹配以什么开头的项目

四、Jenkins构建maven

1.配置maven环境

# 下载
[root@jenkins ~]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

#2.解压
[root@jenkins ~]# tar xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# ll
total 0
drwxr-xr-x  6 root root 99 Aug 17 06:43 apache-maven-3.6.3

#3.添加环境变量
[root@jenkins local]# ln -s /usr/local/apache-maven-3.6.3 /usr/local/maven      #建软连接 
[root@jenkins maven]# vim /etc/profile   #添加环境变量
... ...
xport MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
[root@jenkins maven]# source /etc/profile   #重载环境变量

[root@jenkins ~]# mvn --version   #测试
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/maven
Java version: 1.8.0_302, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.138-1.el7.elrepo.x86_64", arch: "amd64", family: "unix"

2.配置maven

#配置JDK
[root@jenkins java-1.8.0-openjdk]# pwd   #jdk目录的位置
/usr/lib/jvm/java-1.8.0-openjdk

[root@jenkins ~]# cd /usr/local/maven/   #maven路径
[root@jenkins maven]# pwd
/usr/local/maven

3.安装maven插件

3. 创建maven仓库

使用jenkins用户在/data/software目录下新建一个repository文件夹,用来作为maven的仓库

[root@jenkins ~]# mkdir -pv /data/software/repository
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/software’
mkdir: created directory ‘/data/software/repository’
[root@jenkins ~]# chown jenkins.jenkins /data/software/repository/

使用root账户修改Maven的settings.xml文件(指定仓库目录和阿里云镜像)

[root@jenkins ~]# vim /usr/local/maven/conf/settings.xml
添加
<!--本地仓库-->          
  <localRepository>/data/software/repository</localRepository>
  
  <mirrors> #里面有这一行,不必再写
    <!--阿里云镜像-->
    <mirror>
      <id>aliyun-maven</id>
      <mirrorOf>central</mirrorOf>
      <name>aliyun maven mirror</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
  </mirrors>

五、参数化构建

https://blog.csdn.net/mm970919/article/details/119711839

DEVOPS 技术实践_04:Jenkins 参数化构建

DEVOPS 技术实践_04:Jenkins 参数化构建

一、参数化构建

1.1 各个参数的信息

凭据参数存储一个用户的账号密码信息,等等,运用最多的是选项参数

1.2 使用选项参数

构建已经变成参数化构建

1.3 获取这个值,修改 Jenkinsfile 文件

String srcType = "${env.srcType}"    #使用env变量获取参数

node {
   def mvnHome
   stage(''Checkout'') { // for display purposes
       println(''checkcode'')
   }
   stage(''Build'') {
      println("${srcType}")
   }
   stage(''Test'') {
      println(''test'')
   }
   stage(''Deploy''){
       println(''Deploy'')
   }
   stage(''CodeScan''){
       println(''code'')
   }
}

1.4 jenkins 点击构建

控制台信息

Started by user unknown or anonymous
Obtained Jenkinsfile from git http://172.25.254.131/devops/jenkins.git
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /root/.jenkins/workspace/java_pipeline-Test
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout)
[Pipeline] echo
checkcode
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] echo
Git                #输出参数的信息是Git
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] echo
test
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploy)
[Pipeline] echo
Deploy
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (CodeScan)
[Pipeline] echo
code
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

1.5 给 pipeline 加几个功能性参数

顶一个字符串类型的参数,使用版本

构建的时候就会出现 1 版本,而且这个参数可以修改

二、远程构建

使用 pipeline 作为例子

2.1 配置构建触发器

身份验证令牌

Use the following URL to trigger build remotely: JENKINS_URL/job/java_pipeline-Test/build?token=TOKEN_NAME 或者 /buildWithParameters?token=TOKEN_NAME
Optionally append &cause=Cause+Text to provide text that will be included in the recorded build cause.

2.2 构建

 [root@jenkins-master ~]# curl -s -X POST "http://172.25.254.130:9000/job/java_pipeline-Test/build?token=testabc"

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 403 No valid crumb was included in the request</title>
</head>
<body><h2>HTTP ERROR 403</h2>
<p>Problem accessing /job/java_pipeline-Test/build. Reason:
<pre>    No valid crumb was included in the request</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a><hr/>

</body>
</html>

关闭防止跨站点请求

点击系统配置 ---> 点击全局安全配置

[root@jenkins-master ~]# curl -s -X POST "http://172.25.254.130:9000/job/java_pipeline-Test/build?token=testabc" a=b

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 400 This page expects a form submission</title>
</head>
<body><h2>HTTP ERROR 400</h2>
<p>Problem accessing /job/java_pipeline-Test/build. Reason:
<pre>    This page expects a form submission</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a><hr/>

</body>
</html>

因为我们使用参数构建,需要使用另一个

[root@jenkins-master ~]# curl -s -X POST "http://172.25.254.130:9000/job/java_pipeline-Test/buildWithParameters?token=testabc"

jenkins 正在构建

 

控制台输出

Started by remote host 172.25.254.130
Obtained Jenkinsfile from git http://172.25.254.131/devops/jenkins.git
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /root/.jenkins/workspace/java_pipeline-Test
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout)
[Pipeline] echo
checkcode
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] echo
Git             #不设置参数的参数构建
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] echo
test
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploy)
[Pipeline] echo
Deploy
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (CodeScan)
[Pipeline] echo
code
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS 

2.3 设置参数构建

 

[root@jenkins-master ~]# curl -s -X POST "http://172.25.254.130:9000/job/java_pipeline-Test/buildWithParameters?token=testabc"  -d srcType=SVN

控制台输出

Started by remote host 172.25.254.130
Obtained Jenkinsfile from git http://172.25.254.131/devops/jenkins.git
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /root/.jenkins/workspace/java_pipeline-Test
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout)
[Pipeline] echo
checkcode
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] echo
SVN                             #带参数的参数构建结果
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] echo
test
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploy)
[Pipeline] echo
Deploy
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (CodeScan)
[Pipeline] echo
code
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

2.4  不使用参数构建

换另一个任务,不使用参数构建

身份验证令牌

Use the following URL to trigger build remotely: JENKINS_URL/job/diy-maven_TEST/build?token=TOKEN_NAME 或者 /buildWithParameters?token=TOKEN_NAME
Optionally append &cause=Cause+Text to provide text that will be included in the recorded build cause.

设置权限

错误参数构建

[root@jenkins-master ~]# curl -s -X POST "http://172.25.254.130:9000/job/diy-maven_TEST/build?token=testabc" 

报错

<html><head><meta http-equiv=''refresh'' content=''1;url=/login?from=%2Fjob%2Fdiy-maven_TEST%2Fbuild%3Ftoken%3Dtestabc''/><script>window.location.replace(''/login?from=%2Fjob%2Fdiy-maven_TEST%2Fbuild%3Ftoken%3Dtestabc'');</script></head><body style=''background-color:white; color:white;''>
Authentication required
<!--
-->
</body></html>

正确构建

[root@jenkins-master ~]# curl -s -X POST "http://172.25.254.130:9000/job/diy-maven_TEST/build?token=testmvn"

开支构建

 

控制台信息

Started by remote host 172.25.254.130
Building remotely on slave1 in workspace /var/jenkins/workspace/diy-maven_TEST
No credentials specified
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url http://172.25.254.131/tester/mvn-test01.git # timeout=10
Fetching upstream changes from http://172.25.254.131/tester/mvn-test01.git
 > git --version # timeout=10
 > git fetch --tags --progress http://172.25.254.131/tester/mvn-test01.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d
Commit message: "Add CHANGELOG"
 > git rev-list --no-walk 6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d # timeout=10
Parsing POMs
Established TCP socket on 39000
maven35-agent.jar already up to date
maven35-interceptor.jar already up to date
maven3-interceptor-commons.jar already up to date
[diy-maven_TEST] $ java -cp /var/jenkins/maven35-agent.jar:/usr/local/maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0.jar:/usr/local/maven/apache-maven-3.6.1/conf/logging jenkins.maven3.agent.Maven35Main /usr/local/maven/apache-maven-3.6.1 /usr/local/jenkins-slave/agent.jar /var/jenkins/maven35-interceptor.jar /var/jenkins/maven3-interceptor-commons.jar 39000
<===[JENKINS REMOTING CAPACITY]===>channel started
Executing Maven:  -B -f /var/jenkins/workspace/diy-maven_TEST/pom.xml clean install
[INFO] Scanning for projects...
[INFO] 
[INFO] ---------------------< com.example.app:maven-app >----------------------
[INFO] Building maven-app 1.3-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ maven-app ---
[INFO] Deleting /var/jenkins/workspace/diy-maven_TEST/target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ maven-app ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /var/jenkins/workspace/diy-maven_TEST/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ maven-app ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /var/jenkins/workspace/diy-maven_TEST/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ maven-app ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /var/jenkins/workspace/diy-maven_TEST/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ maven-app ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /var/jenkins/workspace/diy-maven_TEST/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ maven-app ---
[INFO] Surefire report directory: /var/jenkins/workspace/diy-maven_TEST/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.example.app.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[JENKINS] Recording test results
[WARNING] Attempt to (de-)serialize anonymous class hudson.maven.reporters.SurefireArchiver$2; see: https://jenkins.io/redirect/serialization-of-anonymous-classes/
[WARNING] Attempt to (de-)serialize anonymous class hudson.maven.reporters.BuildInfoRecorder$1; see: https://jenkins.io/redirect/serialization-of-anonymous-classes/
[INFO] 
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ maven-app ---
[INFO] Building jar: /var/jenkins/workspace/diy-maven_TEST/target/maven-app-1.3-SNAPSHOT.jar
[INFO] 
[INFO] --- maven-install-plugin:2.4:install (default-install) @ maven-app ---
[INFO] Installing /var/jenkins/workspace/diy-maven_TEST/target/maven-app-1.3-SNAPSHOT.jar to /root/.m2/repository/com/example/app/maven-app/1.3-SNAPSHOT/maven-app-1.3-SNAPSHOT.jar
[INFO] Installing /var/jenkins/workspace/diy-maven_TEST/pom.xml to /root/.m2/repository/com/example/app/maven-app/1.3-SNAPSHOT/maven-app-1.3-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  12.620 s
[INFO] Finished at: 2019-04-12T11:42:56+08:00
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving /var/jenkins/workspace/diy-maven_TEST/pom.xml to com.example.app/maven-app/1.3-SNAPSHOT/maven-app-1.3-SNAPSHOT.pom
[JENKINS] Archiving /var/jenkins/workspace/diy-maven_TEST/target/maven-app-1.3-SNAPSHOT.jar to com.example.app/maven-app/1.3-SNAPSHOT/maven-app-1.3-SNAPSHOT.jar
channel stopped
Finished: SUCCESS

带用户名密码

[root@jenkins-master ~]# curl -s -u admin:meiyoumima -X POST "http://172.25.254.130:9000/job/diy-maven_TEST/build?token=testmvn" 

获取后见结果

[root@jenkins-master ~]# curl -s -u admin:meiyoumima -X POST "http://172.25.254.130:9000/job/diy-maven_TEST/lastBuild/api/json?token=testmvn" 

{"_class":"hudson.maven.MavenModuleSetBuild","actions":[{"_class":"hudson.model.CauseAction","causes":[{"_class":"hudson.model.Cause$RemoteCause","shortDescription":"Started by remote host 172.25.254.130","addr":"172.25.254.130","note":null}]},{"_class":"hudson.plugins.git.util.BuildData","buildsByBranchName":{"refs/remotes/origin/master":{"_class":"hudson.plugins.git.util.Build","buildNumber":7,"buildResult":null,"marked":{"SHA1":"6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d","branch":[{"SHA1":"6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d","name":"refs/remotes/origin/master"}]},"revision":{"SHA1":"6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d","branch":[{"SHA1":"6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d","name":"refs/remotes/origin/master"}]}}},"lastBuiltRevision":{"SHA1":"6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d","branch":[{"SHA1":"6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d","name":"refs/remotes/origin/master"}]},"remoteUrls":["http://172.25.254.131/tester/mvn-test01.git"],"scmName":""},{"_class":"hudson.plugins.git.GitTagAction"},{},{"_class":"hudson.maven.reporters.SurefireAggregatedReport","failCount":0,"skipCount":0,"totalCount":1,"urlName":"testReport"},{"_class":"hudson.maven.reporters.MavenAggregatedArtifactRecord"},{},{},{},{}],"artifacts":[],"building":false,"description":null,"displayName":"#7","duration":16654,"estimatedDuration":22772,"executor":null,"fullDisplayName":"diy-maven_TEST #7","id":"7","keepLog":false,"number":7,"queueId":30,"result":"SUCCESS","timestamp":1555364270313,"url":"http://172.25.254.130:9000/job/diy-maven_TEST/7/","builtOn":"slave1","changeSet":{"_class":"hudson.plugins.git.GitChangeSetList","items":[],"kind":"git"},"culprits":[],"mavenArtifacts":{},"mavenVersionUsed":"3.6.1"

过滤

[root@jenkins-master ~]# curl -s -u admin:meiyoumima -X POST "http://172.25.254.130:9000/job/diy-maven_TEST/lastBuild/api/json?token=testmvn" |grep -Po ''"result":".*?"''|awk -F : ''{print $2}''|sed ''s/\"/ /''g
 SUCCESS  

2.5 使用 xml 输出结果

root@jenkins-master ~]# curl -s -u admin:meiyoumima -X POST "http://172.25.254.130:9000/job/diy-maven_TEST/lastBuild/api/xml?token=testmvn" 

<mavenModuleSetBuild _class=''hudson.maven.MavenModuleSetBuild''><action _class=''hudson.model.CauseAction''><cause _class=''hudson.model.Cause$RemoteCause''><shortDescription>Started by remote host 172.25.254.130</shortDescription><addr>172.25.254.130</addr></cause></action><action _class=''hudson.plugins.git.util.BuildData''><buildsByBranchName><refsremotesoriginmaster _class=''hudson.plugins.git.util.Build''><buildNumber>7</buildNumber><marked><SHA1>6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d</SHA1><branch><SHA1>6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d</SHA1><branch><SHA1>6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d</SHA1><branch><SHA1>6454cc57fd8252c2859ff8ebd5cf78d087bbdc0d</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>http://172.25.254.131/tester/mvn-test01.git</remoteUrl><scmName></scmName></action><action _class=''hudson.plugins.git.GitTagAction''></action><action></action><action _class=''hudson.maven.reporters.SurefireAggregatedReport''><failCount>0</failCount><skipCount>0</skipCount><totalCount>1</totalCount><urlName>testReport</urlName></action><action _class=''hudson.maven.reporters.MavenAggregatedArtifactRecord''></action><action></action><action></action><action></action><action></action><building>false</building><displayName>#7</displayName><duration>16654</duration><estimatedDuration>22772</estimatedDuration><fullDisplayName>diy-maven_TEST #7</fullDisplayName><id>7</id><keepLog>false</keepLog><number>7</number><queueId>30</queueId><result>SUCCESS</result><timestamp>1555364270313</timestamp><url>http://172.25.254.130:9000/job/diy-maven_TEST/7/</url><builtOn>slave1</builtOn><changeSet _class=''hudson.plugins.git.GitChangeSetList''><kind>git</kind></changeSet><mavenArtifacts></mavenArtifacts><mavenVersionUsed>3.6.1</mavenVersionUsed></mavenModuleSetBuild>

过滤

[root@jenkins-master ~]# curl -s -u admin:meiyoumima -X POST "http://172.25.254.130:9000/job/diy-maven_TEST/lastBuild/api/xml?token=testmvn" |grep -Po ''<result>.*?</result>''|sed ''s/<result>//''g|awk -F ''<'' ''{print $1}''
SUCCESS

 

Jenkins 2.32.3 参数化构建 maven 项目

Jenkins 2.32.3 参数化构建 maven 项目

 

场景描述
Jenkins 项目配置
JAVA 项目端配置
pom.xml
java 代码

 

 

场景描述

使测试人员可依据开发提交的问题编号更精确的提取升级包

Jenkins 项目配置

  1. 基础配置: 注意事项 输入的参数需增加双引号
  2. 源码管理:
  3. 构建: 注意事项:-Dbugids=% bugids% -DbeginTime=% beginTime% -DendTime=% endTime%, 这一段为传递到 maven 中的参数需和参数配置中名字保持一致,
    maven 命令中需增加 test 命令

JAVA 项目端配置

简介:使用 org.testng 来接收 Jenkins 传递的参数,在测试方法中执行 java 类来进行捞取提交日志,并复制提交文件到升级包的操作.

pom.xml

  1. 在 properties 中增加提包所需的参数,需与 Jenkins 中参数名一致
  2. 使用 maven-surefire-plugin 来传递 Jenkins 中参数到 java 测试类中:

java 代码

  1. 在测试包中增加提包相关代码,并使用 @Parameters 注解来接收 maven 传递过来的参数

 

来自为知笔记 (Wiz)

 

Jenkins 2.32.3 参数化构建 maven 项目 - java 项目

Jenkins 2.32.3 参数化构建 maven 项目 - java 项目

说明

使用 org.testng 来接收 Jenkins 传递的参数,在测试方法中执行 java 类来进行捞取提交日志,并复制提交文件到升级包的操作.

pom.xml

  1. 在 properties 中增加提包所需的参数,需与 Jenkins 中参数名一致
  2. 使用 maven-surefire-plugin 来传递 Jenkins 中参数到 java 测试类中:

java 代码

  1. 在测试包中增加提包相关代码,并使用 @Parameters 注解来接收 maven 传递过来的参数


来自为知笔记 (Wiz)


关于如何在Jenkins的成功构建中触发参数化构建?jenkins参数化构建+触发构建的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于3--Jenkins详解 、用户权限、构建maven、参数化构建、DEVOPS 技术实践_04:Jenkins 参数化构建、Jenkins 2.32.3 参数化构建 maven 项目、Jenkins 2.32.3 参数化构建 maven 项目 - java 项目的相关信息,请在本站寻找。

本文标签: