当前位置: 首页 > 面试题库 >

具有外部定义的Jenkinsfile的多分支配置

边浩波
2023-03-14
问题内容

我有一个开源项目,该项目位于GitHub上,并使用由Jenkins控制的构建场构建。

我想使用管道以分支方式构建它,但是我不想在代码内存储Jenkinsfile。有没有办法做到这一点?


问题答案:

首先,为什么不希望在代码中使用Jenkinsfile?管道和构建文件一样,是代码的一部分。

除此之外,您还可以加载常规文件以将其评估为管道脚本。您可以使用from SCM选项从其他位置执行此操作,然后签出实际代码。但这将迫使您手动处理分支构建。

另一个选择是拥有一个非常基本的Jenkinsfile,它仅签出一个外部管道。

您将获得如下内容:

node{
    deleteDir()

    git env.flowScm
    def flow = load 'pipeline.groovy'
    stash includes: '**', name: 'flowFiles'

    stage 'Checkout'
    checkout scm // short hand for checking out the "from scm repository"

    flow.runFlow()
}

pipeline.groovy文件将包含实际管道的位置如下所示:

def runFlow() {
    // your pipeline code

}

// Has to exit with 'return this;' in order to be used as library
return this;


 类似资料:
  • 我在詹金斯有一条多分支管道。我想将我的脚本文件(jenkinsfile)作为svn文件外部包含到我的开发分支中,以便为所有分支集中组织脚本。不幸的是,多分支管道的扫描无法找到脚本文件,因为它只在声明的分支内部寻找,而不是在包含的svn外部位置。有人知道我该怎么解决这个问题吗? 下面是我的svn结构、作业配置和其他信息的示例。 SVN: branchX、branchY等的SVN外部属性。 多分支作业

  • 我在Jenkins中有一个多分支管道项目。我想在管道项目中列出分支时禁用它。我可以添加异常以超越scm触发。但是我想禁用所有触发,包括手动触发。如果我在为分支创建的作业中使用“构建触发器”下的“禁用此项目”,则在我重新加载页面时不会选择该选项(没有可用于单分支管道的保存/应用按钮)。它只保留在Jenkinsfile中配置的以下配置。 有没有办法在Jenkinsfile中指定“禁用此项目”

  • 使用Jenkins进行多平台多分支构建。 我有多个多分支管道项目(每个平台一个,因为每个平台需要显着不同的构建步骤)。我有一个具有多个分支的代码存储库(这就是为什么多分支管道项目有意义)。 我希望每个多分支管道项目引用不同的Jenkinsfile,而不是所有人都试图使用文件名为“Jenkinsfile”的文件,该文件位于存储库的根目录中。 这个已解决的错误表明我应该能够做到这一点,但我找不到任何概

  • 外部定义 有时候创建一个由多个不同检出得到的工作拷贝是非常有用的,举个例子,你或许希望不同的子目录来自不同的版本库位置,或者是不同的版本库。你可以手工设置这样一个工作拷贝—使用svn checkout来创建这种你需要的嵌套的工作拷贝结构。但是如果这个结构对所有的用户是很重要的,每个用户需要执行同样的检出操作。 很幸运,Subversion提供了外部定义的支持,一个外部定义是一个本地路经到URL的影

  • 我想在spring Boot中设置3个配置文件:production,development,test,使用外部配置文件。 应用程序类: AppConfig类:

  • 我是spring boot新手,需要关于具有多个内部连接的自定义JPA查询的帮助。基本上,我需要将以下SQL查询转换为JPA查询: 下面是代码结构: 公司实体 软件库 认证计数信号I mpl