我在Jenkins的工作中使用Jenkins Multiple SCM插件将两个git存储库签出到两个子目录中。然后,我执行一组命令,用从所有三个存储库中提取的信息和代码构建一组工件。但是分支测试检查了两次?工作区具有当前结构:
root
-.git
-all other files
-test
-res
我希望工作区具有这种结构。
root
-test
-res
node (label: 'YYY'){
checkout([
$class: 'GitSCM',
branches: [[name: '*/test']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'test']],
submoduleCfg: [],
userRemoteConfigs: [[url: 'http://myrepo.git']]
])
dir('res') {
git branch: 'master', url: 'http://newrepo.git'
}
}
pipeline {
agent { label 'YYY' }
stages {
xxx
}
}
你可以像这样克隆多个回购:
stage('Setup workspace') {
dir('proj1') {
git([url: 'git@gitlab.xxx.local:chenchuk/proj1.git', branch: 'master'])
}
dir('proj2') {
git([url: 'git@gitlab.xxx.local:chenchuk/proj2.git', branch: 'master'])
}
}
虽然它不在问题中,但值得一提的是,它也可以并行完成,如下所示:
stage('Setup workspace') {
parallel('clone projects': {
dir('proj1') {
git([url: 'git@gitlab.xxx.local:chenchuk/proj1.git', branch: 'master'])}
}, 'clone sf_tasks': {
dir('proj2') {
git([url: 'git@gitlab.xxx.local:chenchuk/proj2.git', branch: 'master'])}
})
}
我为此使用了一个函数:
def checkoutGitRepo(final String repoUrl, final String repoBranch, final String folder) {
//checkout in folder
dir ("${folder}") {
git(url: "${repoUrl}",
credentialsId: 'jenkins-git-credential-id-here',
branch: "${repoBranch}"
)
}
}
您可以将该函数放在共享库中,并在需要的任何构建中调用它。
在我的Jenkins工作中,我使用Jenkins Multiple SCM插件将三个git存储库签出到三个子目录中。然后,我执行一组命令,用从所有三个存储库中提取的信息和代码构建一组工件。 多个SCM现在折旧,文本建议转移到管道。我试过了,但我想不出怎么让它起作用。
问题内容: 我正在使用Jenkins Multiple SCM插件将三个git存储库检出到Jenkins作业的三个子目录中。然后,我执行一组命令,以使用从所有三个存储库中提取的信息和代码构建一组工件。 现在已弃用多个SCM,并且文本建议移至管道。我尝试过,但是我不知道如何使它工作。 这是我感兴趣的从詹金斯工作目录的顶层看到的目录结构: 这三个子目录中的每一个都有一个单独的git repo签出。对于
问题内容: 对“ svn”样式很抱歉-我们正在从SVN迁移到GIT(包括我们的CI Jenkins环境)。 我们需要的是使Jenkins能够将GIT项目(存储库?)检出(或应该说克隆?)到特定目录中。我们已经尝试了一些refspecs魔术,但是了解和成功使用它并不太明显。 此外,如果在同一个Jenkins项目中,我们需要将几个私有GitHub存储库检出到项目根目录下的几个单独的目录中,我们该怎么做
问题内容: 尝试使用 这将失败,并显示身份验证错误。除了使用以外还有其他方法吗 withCredentials 在Jenkinsfile中签出标签 问题答案: 花完之后,几个小时就到了 在声明式管道中使用GitSCM的正确方法是 不像我在网络上的大多数地方都找到的
我已经设置了一个Jenkins声明管道作业,它从Git中提取Jenkins文件。我有一个在另一个节点上运行的阶段(由标签选择),但它也试图从Git中检出Jenkinsfile。 我怎样才能阻止这种行为?这个特定的从属服务器位于防火墙的另一端,我只能通过SSH访问它。
问题内容: 使用Jenkins 1.501和Jenkins Git插件1.1.26 我有3个不同的git仓库,每个仓库都有多个项目。 现在,我需要将所有3个git存储库中的项目检出到Jenkins从属服务器上的同一工作区中。我在以下 代码中 定义了每个git repo: 源代码管理:多个SCM 。但是每次签出一个回购协议时,先前的回购协议(及其关联项目)都会被删除。 我读过这个: http://j