2016-08-31 14 views
3

私は、同じコマンド 'mvn install'を入力して、LinuxまたはWindowsのいずれかで正常に動作するJavaアプリケーションのmavenビルドを作成しました。jenkins 2はLinuxまたはWindowsでビルドを実行します

ただし、このビルドを設定するJenkinsfileメソッドを使用すると、Linux上でファイルにはsh mvn installが含まれ、ウィンドウにはbat mvn installが含まれている必要があります。パスおよびツールは、Windows上で適切に設定されている場合

、番組を記録:

[Pipeline] sh [C:\tools\jenkins\workspace\DSL\master] Running shell script sh: C:\tools\jenkins\workspace\DSL\[email protected]\durable-60527040\script.sh: command not found

は、両方の環境で構築できるようにする単一Jenkinsfileための方法はありますか?

答えて

4

パイプラインスクリプトにはGroovyコードを含めることができるため、ifで分岐することはできます。あなたはSystem.properties['os.name']でご使用の環境をテストし、その結果に応じて、shまたはbatを使用することができます。

node { 
    def os = System.properties['os.name'].toLowerCase() 
    echo "OS: ${os}" 
    if (os.contains("linux")) { 
     sh "mvn install" 
    } else { 
     bat "mvn install" 
    } 
} 
+0

お使いのOSの検出方法は、私のために動作しません。私にとってos.nameはノードに関係なく常にlinuxです。しかし、def isLinux(){return null == env.windir}は動作します。非常に予期しない –

関連する問題