git - 在 Jenkins 中,如何将项目 check out 到特定目录(使用 GIT)

标签 git github hudson jenkins jenkins-plugins

对“svn”风格感到抱歉 - 我们正在从 SVN 迁移到 GIT(包括我们的 CI Jenkins 环境)。

我们需要的是能够让 Jenkins check out (或者我应该说克隆?)GIT 项目(存储库?)到特定目录。我们已经尝试了一些 refspecs 魔法,但它不是太明显而无法成功理解和使用。

此外,如果在同一个 Jenkins 项目中,我们需要将多个私有(private) GitHub 存储库 check out 到项目根目录下的几个单独的目录中,请问我们该怎么做?

我们安装了 GitHub 插件。希望我们的措辞是正确的。

最佳答案

在新的 Jenkins 2.0 管道(以前称为工作流插件)中,这是不同的:

  • 主仓库
  • 其他附加存储库

这里我特指Multibranch Pipeline 2.9版本。

主存储库

这是包含您的 Jenkinsfile 的存储库。

在管道项目的配置屏幕中,输入您的存储库名称等。

不要使用其他行为 > checkout 到子目录。这会将您的 Jenkinsfile 放在子目录 where Jenkins cannot find it 中.

Jenkinsfile 中,使用 dir() 检查子目录中的主存储库:

dir('subDir') {
    checkout scm
}

额外的存储库

如果您想查看更多存储库,请使用管道语法 生成器自动生成 Groovy 代码片段。

在管道项目的配置屏幕中:

  1. 选择管道语法。在示例中 步骤下 pull 菜单,选择checkout: General SCM
  2. 选择您的 SCM 系统,例如 Git。填写常用信息 关于您的存储库或仓库。
  3. 请注意,在多分支管道中,环境变量 env.BRANCH_NAME 包含主存储库的分支名称。
  4. 其他行为下 pull 菜单中,选择 checkout 子目录
  5. 点击生成 Groovy。 Jenkins 将显示 Groovy 代码片段 对应于您指定的 SCM checkout 。
  6. 将此代码复制到您的管道脚本或 Jenkinsfile 中。

关于git - 在 Jenkins 中,如何将项目 check out 到特定目录(使用 GIT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767919/

相关文章:

git - 在 Cloud9 (c9.io) IDE 上从 GitHub 运行 HTML/PHP/JS 项目

macos - 如何在 Mac OS git 中启用分支提示?

python - 在生产中使用开源项目的 Pull Request

git - 如何查看在 git 上创建多个文件的日期?

hudson - 是否可以远程触发某些特定修订版的构建?

hudson - hudson 奴隶可以运行插件吗?

git - gradle提交到VCS所需的最少文件数是多少?

git - 将 repo 下载为 zip 文件

git - 是否可以在不打开浏览器的情况下从 CLI 在 GitHub 上创建远程仓库?

continuous-integration - Hudson jobs 不会调用 javac 吗?