jenkins - Jenkins Pipeline 从列表中创建目录
问题描述
我有一个参数化的 Jenkins 管道,它需要一个以逗号分隔的字符串列表(例如,“eddie,chelsey,adam”)。对于列表中的每个元素,我想创建一个目录(听起来很简单,对吧?)
这是我所拥有的:
def list = params.list
def listSplit = list.split()
pipeline {
agent {
any
}
stages {
stage('Create a directory from each element in the list') {
steps {
for (def i = 0; i < $listSplit.size(); ii++) {
dir ("${it}") {
writeFile file:'dummy', text:''
}
}
}
}
}
}
这将返回以下错误:
WorkflowScript: 17: Expected a step @ line 17, column 21.
for (def i = 0; i < $LOBList.size(); ii++) {
^
1 error
at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:142)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:127)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:561)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:522)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:327)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:427)
Finished: FAILURE
解决方案
将您的代码包装成这样的脚本块:
stages {
stage('Create a directory from each element in the list') {
steps {
script{ // THIS IS MISSING
for (def i = 0; i < $listSplit.size(); i++) {
// logic
}
}
}
}
推荐阅读
- javascript - React,循环中的 Javascript 导出函数
- python - 使用函数在 tkinter 的第二个窗口中创建一个按钮
- bash - 在bash中按日期时间格式排序
- apache-kafka - Kafka中的ExtractTopic转换
- mern - 如何使用 Mern 堆栈存储会话的服务器文件
- swift - 在 SwiftUI 视图中初始化惰性变量
- c++ - W10 线程排序服务
- git - InteliJ - 你可以添加一个 maven 依赖项目但留在不同的功能分支上吗?
- shell - Shell中的不同程序如何处理数据流中的不同列?
- c++ - 如何在 Visual Studio 中编译为单个可执行文件