2017-10-10 2 views
0

は、私は私のパイプラインのビルドの一部としてファイルに変数の内容をコピーしようとしていますファイルにコピーし、私はこの例では動作しますJenkinsfileは、変数が

思わ変数にアクセスすることができません

stage('Copy Var') { 
    sh 'echo "This is my string" >> /path/to/file' 
    string = sh(script: 'cat /path/to/file', returnStdout: true) 
    echo "string is ${string}" 
} 

// outputs: "string is This is my string" 

は、しかし、すぐに私は、変数の使用を開始すると、その後、私は何も

string = sh(script: 'cat /path/to/test.txt', returnStdout: true) 
stage('Copy Var') { 
    sh 'echo "${string}" >> /path/to/file' 
    echo "${string}" 
    // outputs: test txt 
    copy_string = sh(script: 'cat /path/to/file', returnStdout: true) 
    echo "string is ${copy_string}" 
} 
// outputs string is 

を返さない取得私がここで行方不明です何かはありますか?

おかげ

答えて

0

はい、あなたが不足しているreadFileステップ:答えを投稿するための

copy_string = readFile('/path/to/file') 
+1

おかげで、イムだけで好奇心スクリプト(これは異なったときに、 '文字列= SHを振る舞う理由として:「猫/path/to/test.txt '、returnStdout:true) '例えば文字列の値を返す – Richlewis

+0

@Richlewis結果はまったく同じです。 IIRCでは、ノードを割り当てることなくJenkinsが 'readFile'ステップを実行できます(状況によっては役立つかもしれません)。さらに、私はいつも砲撃するのではなく、DSLの手段を使うことを好みます。 – StephenKing

関連する問題