我在詹金斯中使用管道插件。我Jenkinsfile
有,numToEcho =1,2,3,4
但我想致电Test.myNumbers()
以获取值列表。
我的Jenkinsfile:
def numToEcho = [1,2,3,4]
def stepsForParallel = [:]
for (int i = 0; i < numToEcho.size(); i++) {
def s = numToEcho.get(i)
def stepName = "echoing ${s}"
stepsForParallel[stepName] = transformIntoStep(s)
}
parallel stepsForParallel
def transformIntoStep(inputNum) {
return {
node {
echo inputNum
}
}
}
import com.sample.pipeline.jenkins
public class Test{
public ArrayList<Integer> myNumbers() {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
}
您可以将逻辑编写在Groovy文件中,该文件可以保存在Git存储库,管道共享库或其他地方。
例如,如果您utils.groovy
的存储库中有文件:
List<Integer> myNumbers() {
return [1, 2, 3, 4, 5]
}
return this
在您的中Jenkinsfile
,您可以通过以下load
步骤使用它:
def utils
node {
// Check out repository with utils.groovy
git 'https://github.com/…/my-repo.git'
// Load definitions from repo
utils = load 'utils.groovy'
}
// Execute utility method
def numbers = utils.myNumbers()
// Do stuff with `numbers`…
另外,您可以签出Java代码并运行它,然后捕获输出。然后,您可以将其解析为列表,或稍后在管道中所需的任何数据结构。例如:
node {
// Check out and build the Java tool
git 'https://github.com/…/some-java-tools.git'
sh './gradlew assemble'
// Run the compiled Java tool
def output = sh script: 'java -jar build/output/my-tool.jar', returnStdout: true
// Do some parsing in Groovy to turn the output into a list
def numbers = parseOutput(output)
// Do stuff with `numbers`…
}
问题内容: 在安装了“版本号插件”的Jenkinsfile中尝试此步骤: 并得到此错误: 在Jenkinsfile中使用此插件的正确方法是什么? 问题答案: 您需要使用它作为步骤。 看一看https://your_jenkins_url.com/pipeline- syntax/ 并检查已剪切生成器中VersionNumber步骤的所有选项。
我知道我可以通过Jenkins RTC插件使用scm轮询,我只是想知道是否有一个如何通过管道插件的groovy脚本做到这一点的例子? 例如: 类似于上面的内容,但不是git,而是将rtc toolkit与prod url一起使用,并指定一个流或一个工作区。。。在任何地方都找不到示例,也不确定如何通过api实现它(或者如果可能的话?)
我有一个groovy文件,我想从Jenkinsfile运行。 即加载脚本。groovy 但是,我不确定如何引用这个文件,如果它存储在与Jenkinsfile相同的目录中。我正在从git加载Jenkinsfile。我注意到它创建了一个名为的文件夹。它没有将其放在工作区目录中。我可以对文件夹进行硬编码,但我不确定这方面的规则,再次签出代码似乎有点多余。 默认情况下,它从工作区加载,而不是 我正在尝试将
我们在Jenkins中使用gerrit-trigger,当一个新的变更集被推送审查时,构建被触发。 现在我们要介绍管道,并在供应链管理中使用定义管道的解决方案 因此我们希望当构建被触发时,下面的管道插件可以工作来检查这个refspec
问题内容: 我正在尝试使用Text Finder插件编写jenkinsfile ,但我不知道它是如何工作的。 这是我的代码: 问题答案: 正如@mghicks已经提到的,并不是每个插件都支持Jenkins管道。在这种情况下,Text Finder插件不支持它。例如,您可以为此编写自己的groovy函数: 例如: 我们正在调用filterLogs函数,并提供参数“ ERROR”(在您的日志中搜索ER
问题内容: 我在声明性jenkins管道中执行以下步骤:我使用libraryResource 创建来自文件夹的脚本。该脚本包含我的用户和某些用户的凭据。 这很好。我可以使用我的用户。现在,我正在寻找最好的方式来包括用户的凭据。我是否需要“嵌套”第二部分,还是可以再次添加“数组”? 问题答案: 当然,您可以使用一个块将多个凭证分配给不同的变量。