Jenkins中的Git LFS设置

Sid*_*ath 5 git bitbucket jenkins git-lfs

我在Jenkins中使用git LFS时遇到了问题.我现在正在做的是

  1. 我正在通过詹金斯从maven建立一场战争,战争中包含一个jar文件
  2. 通过Git LFS,我们将该jar文件转换为指针文件.但是在从Jenkins结帐时,jar没有转换成原始大小,而是作为指针包含在战争中.

我们在Jenkins中分别使用了git插件和git-client插件,版本分别为3.3.0和2.4.2.

怎么了:

A.war - > a.jar(其原始大小为1234 kb,但它的速度为3 kb(指针文件的大小)

所以我的问题是:

  1. 如何在Jenkins中使用git LFS?
  2. Jenkins有没有单独的Git Lfs插件?
  3. 当人们使用Git LfS时,如何在结账时将文件转换为原始大小?

小智 14

这可以使用Jenkins 的常规Git +插件(版本3.1.0以后)完成.

如果您正在使用Jenkins管道(即在您的仓库的根目录中使用Jenkins文件),关键是[$class: 'GitLFSPull']在您的checkout()调用中包含该扩展.这是一个(编辑过的)示例,取自我们的一个回购:

checkout([  $class: 'GitSCM', 
    branches: [[name: 'refs/heads/'+env.BRANCH_NAME]],
        doGenerateSubmoduleConfigurations: false,
        extensions: [
            [$class: 'GitLFSPull'],
            [$class: 'CheckoutOption', timeout: 20],
            [$class: 'CloneOption',
                    depth: 0,
                    noTags: false,
                    reference: '/other/optional/local/reference/clone',
                    shallow: false,
                    timeout: 120]
        ],
        submoduleCfg: [],
        userRemoteConfigs: [
            [credentialsId: 'foobar',
            url: 'https://github.com/foo/bar.git']
        ]
    ])
Run Code Online (Sandbox Code Playgroud)

使用Snippet Generator,可以通过从"Additional Behaviors"菜单中选择"结账后的Git LFS拉取"来生成此代码.在此处查看截图

  • 给了我这个:“hudson.plugins.git.GitException:命令“git lfs pull origin”返回状态代码1:stdout:stderr:git:'lfs'不是git命令。请参阅'git --help'。你有吗意思是这个?记录”。这可能需要在从属设备上预先安装 git lfs... (2认同)

Pri*_*eja 10

这可以通过“Pre SCM BuildStep”插件来完成。

  1. 在 Jenkins 中添加“Pre SCM BuildStep”插件。

  2. 在作业配置中

    1. 在 Build Environment 部分选择属性Run buildstep before SCM running

    2. 单击添加构建步骤

    3. 选择执行 Shell执行 Windows 批处理命令

    4. 在shell中添加以下命令,

      git lfs 安装

  3. 在 Source Code Management 部分 -> Additional Behaviors -> Add Git LFS pull after checkout

参考链接