Jenkins不同job之间传递参数

有的时候不同job直接需要传递一个文件名或者路径,这个时候我们不需要传递文件实体,那这个路径如何传递呢?比如有如下两个项目,我想把A的工作目录传递给B,让B使用。

A job配置

首先需要安装一个Parameterized Trigger Plugin插件:

安装后重启。

在A项目配置面板中Post-build Actions选项中选择Trigger parameterized build on other projects 我选择的参数为预定义参数,如果想知道有哪些与定义参数,可以在Build模块下选择Execute shell

选在文本框下的the list of available environment variables 选项,可以查看如下信息:

The following variables are available to shell scripts

BUILD_NUMBER
    The current build number, such as "153"
BUILD_ID
    The current build id, such as "2005-08-22_23-59-59" (YYYY-MM-DD_hh-mm-ss)
BUILD_DISPLAY_NAME
    The display name of the current build, which is something like "#153" by default.
JOB_NAME
    Name of the project of this build, such as "foo" or "foo/bar". (To strip off folder paths from a Bourne shell script, try: ${JOB_NAME##*/})
BUILD_TAG
    String of "jenkins-${JOB_NAME}-${BUILD_NUMBER}". Convenient to put into a resource file, a jar file, etc for easier identification.
EXECUTOR_NUMBER
    The unique number that identifies the current executor (among executors of the same machine) that’s carrying out this build. This is the number you see in the "build executor status", except that the number starts from 0, not 1.
NODE_NAME
    Name of the slave if the build is on a slave, or "master" if run on master
NODE_LABELS
    Whitespace-separated list of labels that the node is assigned.
WORKSPACE
    The absolute path of the directory assigned to the build as a workspace.
JENKINS_HOME
    The absolute path of the directory assigned on the master node for Jenkins to store data.
JENKINS_URL
    Full URL of Jenkins, like http://server:port/jenkins/ (note: only available if Jenkins URL set in system configuration)
BUILD_URL
    Full URL of this build, like http://server:port/jenkins/job/foo/15/ (Jenkins URL must be set)
JOB_URL
    Full URL of this job, like http://server:port/jenkins/job/foo/ (Jenkins URL must be set)
SVN_REVISION
    Subversion revision number that's currently checked out to the workspace, such as "12345"
SVN_URL
    Subversion URL that's currently checked out to the workspace.

ok,回到正题,具体配置如下:

我将A项目的工作目录传递给了自定义参数TEST_WORKSPACE.到这里A项目的配置就完成了。

B job配置

我们在A项目配置的TEST_WORKSPACE参数,如果在B job中使用,首先我们在配置界面中,勾选The build is parameterized。具体配置信息如下所示:

这样我们就在当前工作环境中得到了由A传递过来的参数。至于你怎么使用,那是你的事了。比如我在shell脚本中首先切换到该目录下(需要在一台机器上),然后在A项目的工作目录下生成一个hello.txt文档,我们可以在shell命令下配置如下信息:

ok,配置完成了,这个时候我们构建A,看看能不能让B在A的工作目录下生成一个hello.txt文档。

Done!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

基于innobakcupex跨实例不完全恢复步骤

   MySQL在基于热备的基础上,可以实现对原有实例的完全或不完全恢复。而很多时候,原有实例部署了DRBD或者MHA等,在这种情况下,基于原有实例进行恢复会影...

10330
来自专栏一英里广度一英寸深度的学习

Sqoop安装

下载页面下有两个链接,使用sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz,包含hadoop支持。不要用sqoop-1.4.7.tar....

90140
来自专栏安恒信息

安全漏洞公告

1 McAfee Email Gateway存在未明任意命令执行漏洞 ? 2 Zend Framework代理请求处理IP地址伪造漏洞 ? 3Cisco ASA...

277100
来自专栏菩提树下的杨过

jenkins 入门教程(中)

接上回继续,本文以我托管在bitbucket上的一个开源项目spring-boot-rest-framework做为演示,讲解如何创建自动化部署。 一、创建it...

31760
来自专栏张善友的专栏

K2 的Workspace 遭遇400 RequestLength 错误修复

每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误。 使用Fiddler2 查看请求发现请求的长度超...

19950
来自专栏java架构师

storm基础系列之五---------接入数据收集系统flume

1.基本结构介绍   flume是三层架构,agent,collector,storage。每一层都可水平扩展。   其中,agent就是数据采集方;colle...

31190
来自专栏Java 源码分析

SpringCloud:Eureka服务注册与发现

Eureka 其实就是一个 服务注册与发现的中心,也就是相当于我们前面做的一些生产者的服务需要注册到我们的注册中心,那么我们的消费者就不用把代码写死,而是可以去...

19330
来自专栏思考的代码世界

Mac搭建yaf项目

15500
来自专栏清晨我上码

第十一节 资源服务器api-server集成zuul网关

24830
来自专栏何俊林

Android Studio如何Debug对应so文件C/C++代码

在C/C++跨平台开发中,我们知道在Windows上可以通过VS,进行单步断点调试,这非常方便。但是我们如果编译好的动态库so,想要跟踪下其流程及各个阶段,如,...

77090

扫码关注云+社区

领取腾讯云代金券