如何从github通过jenkins读取文件

6yjfywim  于 2023-01-04  发布在  Jenkins
关注(0)|答案(2)|浏览(201)

我正在尝试使用readFile从github读取一个文件,

sshagent (credentials: ["${github_cred}"]) {
                        script {
                                sh """
                                    git checkout test_branch
                                """
                               def file = readFile(file: "/myrepo/${params.value}.txt")

但是在其他情况下,这个文件对于传递的某些参数是不可用的,所以我想检查一下这个文件是否存在于github中,如果存在,就继续下一步,否则就跳过这个阶段。

首次尝试:

当我尝试使用上面的代码时,它在NoSuchFileException不可用时抛出NoSuchFileException。我尝试使用fileExists函数,它实际上只在控制器节点上工作,而不在github上工作。有没有可能实现这一点?

第二次尝试:

我也尝试了git show,如下所示,但我得到了illegal string body or character after dollar sign错误,我不知道这里是什么错误。
git show HEAD~1:/myrepo/"${params.value}".txt > /dev/null 2>&1

yacmzcpb

yacmzcpb1#

fileExists应该在当前运行管道的节点上运行,因此它应该理想地工作。

if (fileExists("/myrepo/${params.value}.txt") {
   def file = readFile(file: "/myrepo/${params.value}.txt") 
}

另一个简单的解决方法是用try-cath Package readFile,因为您知道如果文件不可用,readFile将失败。

def isSuccess = true
def file = null

try {
 file = readFile(file: "/myrepo/${params.value}.txt") 
}catch(e) {
 isSuccess = false
}
nhjlsmyf

nhjlsmyf2#

Jenkins的机器是windows还是macos还是linux?

sh """

pwd
git checkout test_branch
"""

如果是linux或macos,则添加pwd以查看repo的本地完整路径,然后在readfile中使用此完整路径

相关问题