如何在 jenkins 的某个分支上执行 git bundle 命令

How to execute git bundle command on some branch on jenkins

我的问题是在克隆一些分支后要写什么来执行 git bundle 命令,然后将输出文件复制到远程机器:

 stage('Cloning project') {
        git branch: 'release_branch', url: 'repo_url'
    }
    
    stage('create bundle') {
        git bundle  ..........
    }

并非所有 git 命令都可用作本机工作流步骤。作为替代方案,我自己已经成功地使用了 shell 脚本来达到这个目的,其中所有不支持的命令都包含在 shell 脚本中。这些脚本是 git 存储库本身的一部分(通常在构建目录中,但可以是您想要的任何内容)。

对于您的用例,您可以使用类似的方法并将“git bundle ...”与文件传输(使用 sftp、curl、aws cli 或任何在您的环境中可用的工具)一起包装在一个 shell 脚本。假设此文件已在路径 build/bundle_transfer.sh 签入,那么您可以在管道中使用以下语法调用此脚本。


    stage('Cloning project') {
        git branch: 'release_branch', url: 'repo_url'
    }
    
    stage('create bundle') {
        sh 'build/bundle_transfer.sh'
    }

确保您的脚本已签入并设置了可执行属性,否则它将无法在 jenkins 环境中执行。如果您希望在远程存储库上使用任何写入操作(“git bundle ...”不需要),那么您最终可能会在管道中使用 Credentials Binding