【发布时间】:2025-12-07 11:40:02
【问题描述】:
请帮助我将 jenkinsci/list-git-branches-parameter-plugin 合并到我的 jenkinsfile 中。我可以在构建/管道中创建,但我无法通过 jenkinsfile 找到使用此插件的任何示例。
【问题讨论】:
标签: jenkins plugins jenkins-pipeline
请帮助我将 jenkinsci/list-git-branches-parameter-plugin 合并到我的 jenkinsfile 中。我可以在构建/管道中创建,但我无法通过 jenkinsfile 找到使用此插件的任何示例。
【问题讨论】:
标签: jenkins plugins jenkins-pipeline
通过猜测和检查得到它。这是 jenkinsfile 的片段。
listGitBranches(
branchFilter: 'origin.*/(.*)',
defaultValue: 'default',
name: 'nameOfVariable',
type: 'BRANCH',
remoteURL: 'https://repo.url/repo.git',
credentialsId: 'credID')
【讨论】:
quickFilterEnabled,以防其他人在寻找。检查源代码永远不会受到伤害;)github.com/jenkinsci/list-git-branches-parameter-plugin/blob/…
如果使用Git Parameter 也可以(而不是建议的原始插件),我发现此解决方案易于维护且方便。
此方法描述了组成 Jenkins 管道所需的设置,该管道动态“轮询”(列出)特定存储库的所有分支,然后允许用户在运行此作业的构建时使用某些特定分支运行管道。
这里的假设是:
首先要做的是提供 Jenkins 凭据以连接(和“获取”)BitBucket 中的私有存储库。这可以通过创建一个 SSH 密钥对来“链接”托管 Jenkins 服务器的机器上的 Jenkins (!!) 用户和(私有)BitBucket 存储库。
首先要为 Jenkins 用户(即运行 Jenkins 服务器的用户 - 它很可能在安装时默认创建)创建一个 SSH 密钥:
guya@ubuntu_jenkins:~$ sudo su jenkins
[sudo] password for guya:
jenkins@ubuntu_jenkins:/home/guya$ ssh-keygen
输出应类似于以下内容:
生成公钥/私钥 rsa 密钥对。输入保存密钥的文件
(/var/lib/jenkins/.ssh/id_rsa):创建目录'/var/lib/jenkins/.ssh'。 Enter passphrase (empty for no passphrase): Enter the same passphrase again: 您的身份已保存在 /var/lib/jenkins/.ssh/id_rsa 中。您的公钥已保存在 /var/lib/jenkins/.ssh/id_rsa.pub 中。密钥指纹为:SHA256:q6PfEthg+74QFwO+esLbOtKbwLG1dhtMLfxIVSN8fQY jenkins@ubuntu_jenkins 密钥的随机艺术图像为: +---[RSA 2048]----+ | . .. o.E. | | . . .o... o | | . o..o | | +.oo | | . ooX..S | |..+.Bo* . | |.++oo* o. | |..+*..*o | | .=+o==+。 | +----[SHA256]-----+ jenkins@ubuntu_jenkins:/home/guya$
Settings --> Access keys --> Add key,在 BitBucket 存储库中创建(添加)一个 SSH 密钥。cat /var/lib/jenkins/.ssh/id_rsa.pub
jenkins 这个“特权”。这可以通过将带有私钥的新 SSH 用户名添加到 Jenkins --> Credentials --> System --> Global Credentials --> Add credentials 来完成。
jenkins。~/.ssh/id_rsa。这是以字符串:-----BEGIN RSA PRIVATE KEY----- 开头并以字符串:-----END RSA PRIVATE KEY----- 结尾的私钥。请注意,应将整个“块”复制并粘贴到上述部分中。安装可在其official page here 中找到的 Git 参数插件
列出(动态)给定存储库的所有分支所需的最小管道如下:
pipeline
{
agent any parameters
{
gitParameter branchFilter: 'origin/(.*)', defaultValue: 'master', name: 'BRANCH', type: 'PT_BRANCH'
}
stages
{
stage("list all branches")
{
steps
{
git branch: "${params.BRANCH}", credentialsId: "SSH_user_name_with_private_key", url: "ssh://git@myCompanyBitBucketSite.com:port/myRepository.git"
}
}
}
}
注意事项:
defaultValue 设置为master,这样如果不存在分支,它将显示在管道的“下拉列表”中。credentialsId 具有之前配置的凭据名称。【讨论】: