在我的 Jenkins 环境中,我有一个共享库。共享库所做的事情之一是使用标签从 Amazon ECR 中提取 Docker 映像。我希望能够使用共享库的分支作为标签的名称。我怎样才能实现这个目标?
在共享库上下文中使用
env.GIT_BRANCH
时,env.GIT_BRANCH
是正在运行作业的存储库的分支,而不是共享库的分支。
@Library('library') // Defaults to pointing a branch called `production`
runBuild() // Should pull a Docker image with the tag `production`
@Library('library@experimental')
runBuild() // Pulls down a Docker image with the tag `experimental`
Jenkins 不“知道”它正在运行的管道来自共享管道,它使用该库作为其自身的一部分。因此,我在您的情况下看到的唯一可行的解决方案是将其作为共享库中的变量。因为您将拥有的所有与 Git 相关的数据都将与运行该作业的存储库相关。