我正在使用 Jenkins Multibranch 管道 - 具体来说,是 Organization 文件夹,它监控我的所有 Bitbucket 存储库并为包含 Jenkinsfile 的任何存储库构建管道。为简单起见,我已将其配置为目前仅查看我的 1 个存储库。
这是我的问题:
当 Jenkinsfile 位于我的 repo 的根文件夹中时,一切都正常 - Jenkins 看到 Jenkinsfile,并按照该 Jenkinsfile 中的定义创建管道。
repo
|
|___> Jenkinsfile
正如你所见,Jenkins 毫无问题地找到了它:
但是,我想将 Jenkinsfile 移动到我的仓库中的子文件夹中(使我可以灵活地为 1 个仓库定义多个管道)。当我将其移动到子文件夹(jenkins/ci-pipeline/Jenkinsfile
)时,即使我明确地将该相对文件路径提供给 Jenkins,它也找不到 Jenkinsfile!!
repo
|
|___> jenkins
|
|___> ci-pipeline
|
|___> Jenkinsfile
如您所见,尽管jenkins/ci-pipeline/Jenkinsfile
向 Jenkins 提供了相对文件路径(),但它声称无法再找到 Jenkinsfile:
顺便说一句,尽管 Jenkins 字段的描述表明它是“相对位置”,但我还是尝试给它一个绝对文件路径(${WORKSPACE}/jenkins/ci-pipeline/Jenkinsfile
),看看是否可行:
不幸的是,这也不起作用——Jenkins 而且没有扩展其WORKSPACE
环境变量:
我还登录了我的 Jenkins 工作节点并确认 Jenkinsfile 存在于该子文件夹中,位于我的 repo 的 Jenkins 工作区内。
有人能告诉我我做错了什么吗?这看起来很简单,但就是不起作用,这让我很抓狂!
答案1
这似乎是由于我的 Bitbucket Branch Source Plugin (2.2.9) 版本过旧造成的。