gpt4 book ai didi

jenkins - 如何使用 Jenkins 管道文件夹级共享库?

转载 作者:行者123 更新时间:2023-12-04 08:40:47 26 4
gpt4 key购买 nike

我们有几个组件存储在他们自己的 git 存储库中。这些组件的特定组合是作为不同类型的部署/客户的解决方案构建和交付的。因此,我们有一个管道 git 存储库,其中包含多个 Jenkinsfile(具有不同的名称 - 以及构建名称)。

显然,这些管道之间有很多共同点。我知道 Jenkins 共享库,当他们拥有自己的 git 存储库时,它就可以工作。但是,由于我的管道已经在专用的 git 存储库中,我很想知道如何使用此处解释的“文件夹级共享库”--> https://jenkins.io/doc/book/pipeline/shared-libraries/#folder-level-shared-libraries

但是,我无法弄清楚如何使用这个文件夹级共享库。我找不到这种类型的库的任何示例/文档。

任何指向文档/示例的指针 - 或有关如何使用它的指南将不胜感激。

谢谢。

最佳答案

我想正确的方法是实现自定义 SCMRetriever并使用 library步。

但是,您可以使用以下技巧:

假设 jenkins/vars/log.groovy在您的 本地仓库 包含:

def info(message) {
echo "INFO: ${message}"
}

您的 Jenkinsfile可以从 jenkins/ 加载该共享库目录使用 library步:
node('node1') { // load library
checkout scm
// create new git repo inside jenkins subdirectory
sh('cd jenkins && git init && git add --all . && git commit -m init &> /dev/null')
def repoPath = sh(returnStdout: true, script: 'pwd').trim() + "/jenkins"
library identifier: 'local-lib@master', retriever: modernSCM([$class: 'GitSCMSource', remote: repoPath])
}

node('node2') {
stage('Build') {
log.info("called shared lib") // use the loaded library
}
}

关于jenkins - 如何使用 Jenkins 管道文件夹级共享库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45785752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com