我正在尝试使用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
2条答案
按热度按时间yacmzcpb1#
fileExists
应该在当前运行管道的节点上运行,因此它应该理想地工作。另一个简单的解决方法是用try-cath Package
readFile
,因为您知道如果文件不可用,readFile将失败。nhjlsmyf2#
Jenkins的机器是windows还是macos还是linux?
如果是linux或macos,则添加pwd以查看repo的本地完整路径,然后在readfile中使用此完整路径