red*_*888 13 jenkins jenkins-pipeline
env.JOB_NAME管道名称后缀为分支名称.
所以env.JOB_NAME将是<jenkins_pipeline_name>_<my_branch>
我怎样才能获取管道名称并将其存储在我的jenkins文件顶部的环境{}块中的var中以通过该文件使用?
我不想只是声明性地使用脚本管道.
你可以检查一下http://YOUR-JENKINS-SERVER.com/pipeline-syntax/globals#env,它会给你
JOB_NAME
Name of the project of this build, such as "foo" or "foo/bar".
JOB_BASE_NAME
Short Name of the project of this build stripping off folder paths, such as "foo" for "bar/foo".
Run Code Online (Sandbox Code Playgroud)
对于具有多个分支和 PR 的 jenkins 组织项目,JOB_NAME实际上是YOUR_ORG_NAME/YOUR_REPO_NAME/YOUR_BRANCH_OR_PR_NAME,例如my-org/my-repo/PR-23,而JOB_BASE_NAME只是PR-23。正如以色列所说,你可以用它env.JOB_NAME.tokenize('/') as String[]来得到你想要的东西。
如果您想在 Jenkins 中使用更多奇特的脚本,Groovy可以是一个很好的参考。
由于您正在使用multibranch作业,因此env变量返回它从分支.ie _ ..创建的实际作业名称.所以,如果没有一些机制来剥离/删除分支名称,我认为没有jenkins开箱即用的env变量.
@ red888指出了以下对我来说像魔术一样有效的答案。我在实际答案中指出这一点,因为我几乎错过了它:
env.JOB_BASE_NAME
Credit to @red888 in the comment above. Send upvotes his/her way.
在詹金斯管道中
def allJob = env.JOB_NAME.tokenize('/') as String[];
def projectName = allJob[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7913 次 |
| 最近记录: |