想知道现在正在执行哪个Jenkins作业,在java中

时间:2014-05-14 13:02:30

标签: java jenkins

我有3个詹金斯的工作。以下是Jenkins工作的名称:

  1. test_existing_api
  2. test_others_api
  3. test_new_api
  4. 我在java项目中有一个配置文件,它有3种不同的配置。我想选择依赖于Jenkins工作的配置。首先,我想检查哪个Jenkins作业正在执行,然后我将根据该作业进行配置。该配置将在java代码中进一步要求。

    请帮助我了解如何使用Java检查现在正在执行的Jenkins作业。

3 个答案:

答案 0 :(得分:1)

假设您想要在正在执行的作业中获取此数据,请参阅manual entry

  

Jenkins设置环境变量

     

当Jenkins作业执行时,它会设置一些环境变量,您可以在shell脚本,批处理命令,Ant脚本或   Maven POM 1.下表包含所有这些的列表   环境变量。

Environment Variable    Description
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_URL   The URL where the results of this build can be found (e.g. http://buildserver/jenkins/job/MyJobName/666/)
NODE_NAME   The name of the node the current build is running on. Equals 'master' for master node.
JOB_NAME    Name of the project of this build. This is the name you gave your job when you first set it up. It's the third column of the Jenkins Dashboard main page.
BUILD_TAG   String of jenkins-${JOB_NAME}-${BUILD_NUMBER}. Convenient to put into a resource file, a jar file, etc for easier identification.
JENKINS_URL     Set to the URL of the Jenkins master that's running the build. This value is used by Jenkins CLI for example
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.
JAVA_HOME   If your job is configured to use a specific JDK, this variable is set to the JAVA_HOME of the specified JDK. When this variable is set, PATH is also updated to have $JAVA_HOME/bin.
WORKSPACE   The absolute path of the workspace.
SVN_REVISION    For Subversion-based projects, this variable contains the revision number of the module. If you have more than one module specified, this won't be set.
CVS_BRANCH  For CVS-based projects, this variable contains the branch of the module. If CVS is configured to check out the trunk, this environment variable will not be set.
GIT_COMMIT  For Git-based projects, this variable contains the Git hash of the commit checked out for the build (like ce9a3c1404e8c91be604088670e93434c4253f03) (all the GIT_* variables require git plugin)    
GIT_URL     For Git-based projects, this variable contains the Git url (like git@github.com:user/repo.git or https://github.com/user/repo.git)\\
GIT_BRANCH  For Git-based projects, this variable contains the Git branch that was checked out for the build (normally origin/master) 

抱歉格式错误(SO不支持不错的表),但您应该能够使用System.getEnv()检索这些变量。这意味着您不需要为Jenkisn配置添加任何内容,只需从java中读取已经设置的内容即可。

答案 1 :(得分:1)

  

http://<Jenkins_server>/job/<Job_name>/lastBuild/api/xml?depth=1

上面的url将为您提供xml结构化数据,您可以通过解析xml来检查java代码中的<building>false</building>标记值。

如果值为true,则jenkins作业当时正在运行。

要检查给定的三个作业中的哪一个正在运行,您可以按parsing xml in java code检查每个作业的每个作业的状态,并获取正在运行的作业的配置文件。

P.S。 :用适用的数据替换网址中的占位符。 <Jenkins_server><Job_name>

答案 2 :(得分:0)

启动项目时,您可以将系统属性从作业传递到JVM:

...whatever... -Dconfig=test_existing_api

并在您的课程中使用以下内容检索它:

System.getProperty("config")