我想使用jenkins创建一个带有日期日期的目录。 我使用了新的jenkins声明语法。 当我按照下面的工作中的描述运行构建时,它失败了。 但是,mkdir命令在控制台上运行良好。
pipeline {
agent any
stages {
stage('Prepare') {
steps {
echo "Checking for the existence of a debian packages directory for this package"
sh "mkdir -p {env.JENKINS_HOME}/workspace/debian_packages/api-config/$(date +"%d-%m-%Y")"
}
}
}
}
这是我得到的错误(我已尝试转义$字符,但仍然失败)
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup
failed:
WorkflowScript: 19: illegal string body character after dollar sign;
solution: either escape a literal dollar sign "\$5" or bracket the
value expression "${5}" @ line 19, column 17.
sh "mkdir -p
{env.JENKINS_HOME}/workspace/debian_packages/api-
config/$(date +'%d-%m-%Y')"
可能是什么问题?不是jenkins" sh"是否可以直接在控制台上发出命令?
答案 0 :(得分:0)
这是我可以提出的解决方法:
stage('Prepare') {
steps {
script{
sh '(date +"%d-%m-%Y") > outFile'
def curDate = readFile 'outFile'
echo "The current date is ${curDate}"
sh "mkdir -p {env.JENKINS_HOME}/workspace/${curDate}"
}
}
}