web-dev-qa-db-ja.com

Jenkinsfileで文字列を連結する方法は?

Jenkinsfile内のいくつかの文字列を連結しようとしていますが、機能していません。

def versionFromFile = readFile("./version")
def version = versionFromFile + env.BUILD_NUMBER

私は他の解決策も試しました:

sh "echo version: ${version}-${env.BUILD_NUMBER}"
sh "git tag ${version}-${env.BUILD_NUMBER}"

ただし、$ {env.BUILD_NUMBER}は評価/印刷されません

私が行った場合

sh "git tag 1.0.1-${env.BUILD_NUMBER}"

$ {env.BUILD_NUMBER}が評価/印刷されます

Jenkinsfile内でスクリプト言語がどのように機能するのかまだわかりません。ドキュメントはすべてDSLに関するものです。つまり、一般的なスクリプト操作を実行できないということですか?

8
cirpo

これは機能しますか?

versionFromFile = readFile("./version")
sh "git tag ${versionFromFile}-${env.BUILD_NUMBER}"

もちろん、versionFromFileがファイルから正しく読み取られると仮定します。それがあなたの問題ではないことをテストするために、あなたはそれをこのように定義することができます

versionFromFile = "99"
sh "git tag ${versionFromFile}-${env.BUILD_NUMBER}"
3
Mark Chorley