2016-12-15 41 views
2

パイプラインスクリプトで奇妙な問題が発生しています。私はエスケープ文字付きのJenkinsパイプラインマルチラインシェル

sh """ 
    git tag -fa \\"${version}\\" -m \\"Release of ${version}\\" 
""" 

ようなマルチラインSHブロブを持っており、これは何とかとして実行:

+ git tag -fa '"1.0-16-959069f' 
error: Terminal is dumb, but EDITOR unset 
Please supply the message using either -m or -F option. 

ので、そのは-mとメッセージをドロップします。私は単一のエスケープ、ダブルエスケープ、何も動作するように試みた。これは働いていたが、これは、それが働いた実行そして

def tagGithub(String version) { 
    def exec = """ 
    git tag -d ${version} || true 
    git push origin :refs/tags/${version} 

    # tag new version 
    git tag -fa ${version} -m "Release of ${version}" 
    git push origin --tags 
    """ 

    sh exec 
} 

グルーヴィーな補間が逮捕思わインラインジェンキンスと何か、別のVARで補間を行うと、

をした理由を

+0

いシンプルな 'SH」 "" git tag -fa '$ {version}' -m '$ {version}' "" ''のリリースは動作しますか? – izzekil

+0

nope。私は一重引用符を試して、私も一度だけエスケープしようとしました。 – devshorts

答えて

1

は、私は考えている

+1

それは私のためにもこの方法ではうまくいきません –

+1

私は 'version'を計算していたので、最後に改行文字がありました。だから私は 'version.trim()'を追加し、それは動作し始めた。 –

関連する問題