gpt4 book ai didi

jenkins - 如何在不知道名称(或编号)的情况下从共享库中的资源文件夹加载文件?

转载 作者:行者123 更新时间:2023-12-01 00:17:32 25 4
gpt4 key购买 nike

如您所知,在 Jenkins 的共享库中,可以通过执行以下操作来加载资源(位于资源文件夹中):

libraryResource("script.sh")

现在我的用例是我想在资源下的文件夹中加载多个文件:
+ resources
+ teamA
+ script1.sh
+ script2.sh

我想在做任何事情之前加载所有这些文件:
我在共享库中做了一个方法:

new File(scriptsFolder).eachFile() { file->

writeFile([file:"${env.workspace}/${file.getName()}",text:libraryResource("$scriptsFolder/${file.getName()}")])
sh("chmod +x ${env.workspace}/${file.getName()}")
}

哪里 scriptsFolder= "teamA"
我当然收到 java.io.IOException: Is a directory因为 libraryResource必须获取文件路径参数。

那么,有没有一种方法可以在不知道名称或编号的情况下加载所有这些文件?

最佳答案

您可以使用 Groovy @SourceURI 注释获取共享库的绝对路径:

// vars/get_resource_dir.groovy
import groovy.transform.SourceURI
import java.nio.file.Path
import java.nio.file.Paths

class ScriptSourceUri {
@SourceURI
static URI uri
}

def call() {
Path scriptLocation = Paths.get(ScriptSourceUri.uri)
return scriptLocation.getParent().getParent().resolve('resources').toString()
}

使用路径,您可以像往常一样调用脚本:
sh "${get_resource_dir()}/com/example/test.sh"

关于jenkins - 如何在不知道名称(或编号)的情况下从共享库中的资源文件夹加载文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51170409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com