【问题标题】:Jenkinsfile string concat filenameJenkinsfile 字符串连接文件名
【发布时间】:2022-11-18 00:37:39
【问题描述】:

天哪,这有多难…… 试图重命名磁盘上的文件。


stage('upload binaries')
{
    steps
    {
        dir ("firmware")
        {
            script {
                version = readFile("app/source/version.txt")
            }
            script {
                newfilename = "app/build-app/app${version}.bin"
            }
        

            echo "hello....!"
            echo "$version"
            echo "$newfilename"

            sh "mv app/build-app/app.bin app/build-app/app$version.bin"
            upload_bin_file($newfilename)
        }
    }
}  

输出这个

Running in /var/jenkins_home/workspace/y_feature_upload-labelled-binary/firmware
[Pipeline] {
[Pipeline] script
[Pipeline] {
[Pipeline] readFile
[Pipeline] }
[Pipeline] // script
[Pipeline] script
[Pipeline] {
[Pipeline] }
[Pipeline] // script
[Pipeline] echo
hello....!
[Pipeline] echo
v1.0.51

[Pipeline] echo
app/build-app/appv1.0.51
.bin
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage

无论我尝试什么,它都不会附加“.bin”部分。

  • 尝试了单引号/双引号
  • 尝试了 $var 和 ${var}
  • 尝试了 $env.var 和 ${env.var}
  • 尝试像 app${version}.bin 一样转义“点”

阅读有关变量的页面 https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables

仍然不知道如何完成这个极其琐碎的任务。

帮助? :)

【问题讨论】:

  • 看起来变量 $version 中有一个换行符

标签: jenkins groovy jenkins-pipeline


【解决方案1】:

$version 的值来自一个文件,所以我相信这个变量有一个换行符。

尝试将其删除。

testvar=`$testVar | tr -d '
`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多