web-dev-qa-db-ja.com

jenkinsでコマンドシェルを実行する

Jenkinsでコマンドシェルを実行しようとしています。Windows7で作業しています。コンソール出力には次のように表示されます。

Building in workspace C:\Program Files (x86)\Jenkins\workspace\test
[test] $ sh -xe C:\Windows\TEMP\hudson6299483223982766034.sh
The system cannot find the file specified

FATAL: L'exécution de la commande a échoué.
Java.io.IOException: Cannot run program "sh" (in directory "C:\Program Files (x86)\Jenkins\workspace\test"): CreateProcess error=2, Le fichier spécifié est introuvable
    at Java.lang.ProcessBuilder.start(Unknown Source)
    at hudson.Proc$LocalProc.<init>(Proc.Java:244)
    at hudson.Proc$LocalProc.<init>(Proc.Java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.Java:816)
    at hudson.Launcher$ProcStarter.start(Launcher.Java:382)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.Java:97)
    at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.Java:66)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.Java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.Java:779)
    at hudson.model.Build$BuildExecution.build(Build.Java:205)
    at hudson.model.Build$BuildExecution.doRun(Build.Java:162)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.Java:537)
    at hudson.model.Run.execute(Run.Java:1744)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:43)
    at hudson.model.ResourceController.execute(ResourceController.Java:98)
    at hudson.model.Executor.run(Executor.Java:374)
Caused by: Java.io.IOException: CreateProcess error=2, Le fichier spécifié est introuvable
    at Java.lang.ProcessImpl.create(Native Method)
    at Java.lang.ProcessImpl.<init>(Unknown Source)
    at Java.lang.ProcessImpl.start(Unknown Source)
    ... 16 more
Build step 'Exécuter un script Shell' marked build as failure
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
Finished: FAILURE

何か案が?

20
Med braim

Windowsスレーブの場合は、Execute Windows batch commandを使用してください。
LinuxやMacなどのUnixライクなスレーブの場合、Execute Shellがオプションです。

Execute Windows Command Shell

49
mainframer

私の知る限り、Windowsはそのままではシェルスクリプトをサポートしません。 CygwinまたはGit for Windowsをインストールし、[Jenkinsの管理]> [システムシェルの構成]に移動して、インストールで見つかったsh.exeファイルの場所を指定できます。例えば:

C:\Program Files\Git\bin\sh.exe

私が発見した別のオプションがあります。これは、単純なsh "something"を使用してパイプラインスクリプトでシェルを使用できるため、より優れています。

フォルダーをシステムPATHに追加します。 [コンピューター]を右クリックし、[プロパティ]> [システムの詳細設定]> [環境変数]をクリックして、システムパスプロパティにC:\Program Files\Git\bin\を追加します。

重要な注意:何らかの理由で、Jenkinsがこのユーザーで実行されていても、システム全体のPathに追加する必要があり、ユーザーPathへの追加は機能しませんでした。

重要な注意(バグ修正者に感謝!):

これは動作します。新しいPATH変数を取得するには、Jenkinsを再起動する必要があることに注意してください。私はちょうど私のサービスに行き、そこからそれを書き直した。

免責事項:英語版のWindowsを使用していないため、名前が若干異なる場合があります。

11

エラーは、スクリプトが存在しないことを示しています

ファイルが存在しません。完全なパスを確認してください

C:\Windows\TEMP\hudson6299483223982766034.sh
The system cannot find the file specified

さらに、.shスクリプトをWindowsで起動するには、パスに [〜#〜] cygwin [〜#〜] がインストールされ、適切に構成されている必要があります。

スクリプトが存在することを確認します。

Jenkinsスクリプトに、次の手順を実行して、ファイルがあることを確認します

cd C:\Windows\TEMP\
ls -rtl
sh -xe hudson6299483223982766034.sh
4
aorfevre

これは、ジェンキンスがシェルパスを認識していないために発生します。 Jenkinsの管理->システムの構成->シェルで、シェルパスを

  • C:\ Windows\system32\cmd.exe
1
Kashan

[Jenkins]-> [Jenkinsの管理]-> [システムの設定]-> [グローバルプロパティ]ボックスの[環境変数]をオンにして、Java_HOMEパス= "C:\ Program Files\Java\jdk-10.0.1"を追加します。

*最後にビンを書き込まないでください

0
Sim Reaper