vie*_*bel 60 git hudson github jenkins jenkins-plugins
抱歉'svn'风格 - 我们正处于从SVN迁移到GIT(包括我们的CI Jenkins环境)的过程中.
我们需要的是能够让Jenkins结帐(或者我应该说克隆?)GIT项目(存储库?)到一个特定的目录中.我们已经尝试了一些refspecs魔术,但是理解和使用成功并不是很明显.
此外,如果在同一个Jenkins项目中我们需要在项目根目录下将几个私有GitHub存储库签出到几个单独的目录中,我们怎么能这样做呢?
我们安装了GitHub插件.希望我们把事情说得对.
Łuk*_*nek 40
Jenkins 的默认git插件可以很好地完成这项工作.
将新的git存储库(项目配置> 源代码管理 >检查GIT选项)添加到项目后,导航到插件设置的底部,就在存储库浏览器区域的上方.应该有一个高级按钮.单击它后,将出现一个新表单,其值描述为repo的Local子目录(可选).将此设置为folder将使插件将存储库签出到相对于工作空间的文件夹中.这样,您可以根据需要在项目中拥有尽可能多的存储库,所有这些存储库都位于不同的位置.
或者,如果您正在使用的项目允许,您可以使用GIT子模块,这类似于SVN中的外部路径.在GIT Book中有一个关于这个主题的部分.如果这不符合某些策略,子模块使用起来相当简单,为您提供了强大的方法来控制将要导入的位置,版本/标签/分支,它将在您的本地存储库中可用,并为您提供更好的可移植性.
显然,GIT插件支持检出子模块,因此Jenkins可以非常有效地使用它们.
Joh*_*hee 39
在新的Jenkins 2.0管道(以前称为Workflow Plugin)中,这对于:
这里我特指的是Multibranch Pipeline版本2.9.
主存储库
这是包含您的存储库Jenkinsfile.
在管道项目的" 配置"屏幕中,输入存储库名称等.
不要使用其他行为>签出到子目录.这将把你Jenkinsfile放在Jenkins无法找到它的子目录中.
在Jenkinsfile,使用以下命令检查子目录中的主存储库dir():
dir('subDir') {
checkout scm
}
Run Code Online (Sandbox Code Playgroud)
其他存储库
如果要查看更多存储库,请使用Pipeline Syntax生成器自动生成Groovy代码段.
在管道项目的" 配置"屏幕中:
env.BRANCH_NAME包含主存储库的分支名称.Jenkinsfile.小智 17
值得研究的是Pipeline插件.使用该插件,您可以将多个VCS项目签出到相对目录路径中.事先为每个VCS结帐创建一个目录.然后向新签出的VCS工作区发出命令.在我的情况下,我使用git.但你应该明白这个想法.
node{
def exists = fileExists 'foo'
if (!exists){
new File('foo').mkdir()
}
dir ('foo') {
git branch: "<ref spec>", changelog: false, poll: false, url: '<clone url>'
......
}
def exists = fileExists 'bar'
if (!exists){
new File('bar').mkdir()
}
dir ('bar') {
git branch: "<ref spec>", changelog: false, poll: false, url: '<clone url>'
......
}
def exists = fileExists 'baz'
if (!exists){
new File('baz').mkdir()
}
dir ('baz') {
git branch: "<ref spec>", changelog: false, poll: false, url: '<clone url>'
......
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144339 次 |
| 最近记录: |