web-dev-qa-db-ja.com

JenkinsパイプラインshがWindowsで「プログラムNohupを実行できません」で失敗する

私はWindows 10を持っているので、Windows用のUbuntu用bashを使用してJenkinsパイプラインからJenkinsfileでshコマンドを実行したいのですが、うまくいきません

私はJenkinsパイプラインに次の段階があります:

stage('sh how to') {
        steps {
            sh 'ls -l'
        }
    }

エラーメッセージは次のとおりです。

[C:\ Program Files(x86)\ Jenkins\workspace\pipelineascode]シェルスクリプトの実行プログラム "Nohup"を実行できません(ディレクトリ "C:\ Program Files(x86)\ Jenkins\workspace\pipelineascode"):CreateProcess error = 2 、Le fichierspécifiéest introuvable

私はJenkinsパラメータを変更してみました->シェル実行可能ファイル

C:\ Windows\System32\bash.exe

しかし、同じエラー...

windows 10のbashを使用してshスクリプトを実行する方法は?

26
flopic

非常に迅速な検索から、エラーは次の問題に関連しているようです: JENKINS-33708

主な原因は、shステップがWindowsでサポートされていないようです。たとえば、batを使用するか、Cygwinをインストールします。

それでも、前のリンクでは2つの解決策が提案されており、次の手順を実行することをお勧めします。

  • インストール git-bash
  • Jenkinsがsh.exeを見つけるために、Git\binフォルダー(つまり、C:\Program Files\Git\bin)がグローバル検索パスにあることを確認します
  • NohupをJenkinsで使用できるようにし、git-bashで次のようにします(それに応じてパスを調整します):
    • mklink "C:\ Program Files\Git \bin\ Nohup.exe" "C:\ Program Files\git\usr\bin\Nohup.exe 」
    • mklink "C:\ Program Files\Git \bin\ msys-2.0.dll" "C:\ Program Files\git\usr\bin\msys -2.0.dll "
    • mklink "C:\ Program Files\Git \bin\ msys-iconv-2.dll" "C:\ Program Files\git\usr\bin\msys-iconv-2.dll "
    • mklink "C:\ Program Files\Git \bin\ msys-intl-8.dll" "C:\ Program Files\git\usr\bin\msys-intl-8.dll "

インストールに応じて、次のパスを使用する必要があります。

  • mklink "C:\ Program Files\Git \cmd\ Nohup.exe" "C:\ Program Files\git\usr\bin\Nohup.exe 」
  • mklink "C:\ Program Files\Git \cmd\ msys-2.0.dll" "C:\ Program Files\git\usr\bin\msys -2.0.dll "
  • mklink "C:\ Program Files\Git \cmd\ msys-iconv-2.dll" "C:\ Program Files\git\usr\bin\msys-iconv-2.dll "
  • mklink "C:\ Program Files\Git \cmd\ msys-intl-8.dll" "C:\ Program Files\git\usr\bin\msys-intl-8.dll "
35
John-Philip

Git for Windowsでは、C:\Program Files\Git\binをJenkinsのスレーブノードのPATH環境変数に追加し(shにアクセスするため)、C:\Program Files\Git\usr\binを追加する必要がありましたPATH Windowsスレーブでもローカルに(Nohupにアクセスするため)。

4
sonicwave

Git for Windows 2.16.2では、C:\ Program Files\Git\usr\binを(C:\ Program Files\Git\binではなく)PATHに追加できたため、shコマンドはFreeStyleとパイプラインビルド。 mklinkは必要ありませんでした。 ( ソース

3
thSoft

Shをbatに切り替えるとうまくいきました-WindowsでJenkinsを実行しています。しかし、Jenkinsでツール(MavenおよびJDK)を正しく構成しなかったという事実に起因する問題を解決した後のみです。

1
Mike