使用Jenkins工作流插件加载多个构建脚本(DRY)
我一直在玩Jenkins工作流插件,但我不确定更复杂构建的最佳实践。主要是: 当不使用DSL文本区域选项时,有没有办法从另一个groovy脚本中加载groovy脚本 我想答案是否定的,但我还是想问 我的明显动机是共享公共代码,例如克隆、安装RPM、部署等。。我的用例是跨各种AWS环境构建和部署微服务,因此我们有许多Jenkins工作和许多重复步骤 我目前的“解决方法”是使用DSL文本区域加载多个脚本:使用Jenkins工作流插件加载多个构建脚本(DRY),jenkins,jenkins-workflow,Jenkins,Jenkins Workflow,我一直在玩Jenkins工作流插件,但我不确定更复杂构建的最佳实践。主要是: 当不使用DSL文本区域选项时,有没有办法从另一个groovy脚本中加载groovy脚本 我想答案是否定的,但我还是想问 我的明显动机是共享公共代码,例如克隆、安装RPM、部署等。。我的用例是跨各种AWS环境构建和部署微服务,因此我们有许多Jenkins工作和许多重复步骤 我目前的“解决方法”是使用DSL文本区域加载多个脚本: def repo = 'example-sensu-rspec-tests' node {
def repo = 'example-sensu-rspec-tests'
node {
git url: 'https://github.com/bsnape/jenkins-workflow-example.git'
common = load 'common.groovy'
flow = load 'flow2.groovy'
common.clone(repo)
flow.unit()
flow.acceptance()
common.deploy('staging')
}
common指的是通用的东西,而flow则是特定于项目的构建步骤
这是一个合理的方法吗?显然这是一个基本的例子
我知道Jenkins还提供了,但我不确定当前的实现,即Jenkins有一个内部Git存储库
是否可以将此存储库配置为指向外部存储库或与外部存储库同步,例如托管在GitHub上?否则,我不确定该功能的可用性。如果您不同意,请告诉我
有没有办法从另一个groovy脚本中加载groovy脚本
当然,使用加载步骤。也许你应该澄清你的问题
[cps全局库]存储库是否可以配置为指向外部存储库或与外部存储库同步
对不起,没有
有没有办法从另一个groovy脚本中加载groovy脚本
当然,使用加载步骤。也许你应该澄清你的问题
[cps全局库]存储库是否可以配置为指向外部存储库或与外部存储库同步
抱歉,没有。我们不能使用jenkins作为SCM,因此我们有一个窍门: 我们将整个WorkflowLib存储在Bitbucket中。 我们有一个詹金斯的工作,当比特桶回购被取消时,它就开始了。 jenkins作业从jenkins和Bitbucket中签出workflowLibs.git。 然后它在Jenkins中rm-rf所有内容,从Bitbucket复制最新的内容,并执行git提交和git推送,瞧,Jenkins workflowLibs从Bitbucket更新!
我们不能将jenkins用作SCM,因此我们有一个窍门: 我们将整个WorkflowLib存储在Bitbucket中。 我们有一个詹金斯的工作,当比特桶回购被取消时,它就开始了。 jenkins作业从jenkins和Bitbucket中签出workflowLibs.git。 然后它在Jenkins中rm-rf所有内容,从Bitbucket复制最新的内容,并执行git提交和git推送,瞧,Jenkins workflowLibs从Bitbucket更新!
是的,您可以从非Git存储库进行同步。从其他地方托管的Git存储库中,只需获取和推送就可以了。您有使用Jenkins SSH凭据吗?你能详细说明一下推送到Jenkins的配置吗?我真的不记得我是怎么做到的,但基本上我必须让从实例git访问这两个repo。我几乎认为我必须遵循本页上的说明才能使其正常工作:是的,您可以从非Git存储库进行同步。从其他地方托管的Git存储库中,只需获取和推送就可以了。您有使用Jenkins SSH凭据吗?你能详细说明一下推送到Jenkins的配置吗?我真的不记得我是怎么做到的,但基本上我必须让从实例git访问这两个repo。我几乎认为我必须按照本页上的说明来操作: