課題
Jenkinsの初心者ですが、
以下サイトを見てJenkinsでジョブを作り、Build Stepsでシェルの実行を試したところ、、、
このエラーで躓いてました。。。
Running as SYSTEM
ビルドします。 ワークスペース: C:\ProgramData\Jenkins\.jenkins\workspace\test
[test] $ sh -xe C:\Windows\TEMP\jenkins15041529600795810946.sh
指定されたファイルが見つかりません。
FATAL: コマンドの実行に失敗しました
java.io.IOException: CreateProcess error=2, 指定されたファイルが見つかりません。
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:499)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:158)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
Caused: java.io.IOException: Cannot run program "sh" (in directory "C:\ProgramData\Jenkins\.jenkins\workspace\test"): CreateProcess error=2, 指定されたファイルが見つかりません。
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
at hudson.Proc$LocalProc.<init>(Proc.java:252)
at hudson.Proc$LocalProc.<init>(Proc.java:221)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:994)
at hudson.Launcher$ProcStarter.start(Launcher.java:506)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:144)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:92)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
at hudson.model.Build$BuildExecution.build(Build.java:199)
at hudson.model.Build$BuildExecution.doRun(Build.java:164)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526)
at hudson.model.Run.execute(Run.java:1895)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
at hudson.model.ResourceController.execute(ResourceController.java:101)
at hudson.model.Executor.run(Executor.java:442)
Build step 'シェルの実行' marked build as failure
Finished: FAILURE
前提
・Javaインストール済み(Jenkinsは11以上しかだめらしい)
・Jenkinsインストール済み
・Jenkins初期設定済み
・上のサイトに従いジョブを作成
環境
$ java -version
java version "17.0.8" 2023-07-18 LTS
対処方法
以下記事を参考にし、うまく解決できた!!
①ダッシュボード左のJenkinsの管理を押下
②System ConfigurationのSystemを押下
③シェル実行ファイルを設定
ネットで「Windows シェルを実行」を検索すると、linux機能の有効化やUbuntuのインストールなどを誘導するサイトが多いですが。。。(それは間違ってないよ)
ただ、今回の事象は、実はwindows内蔵のcmdでシェルを実行できるよ!
初めてJenkinsをインストールするとき、シェル実行ファイルの設定が空欄になっている人が多いようで、
以下のパスを設定してください!
C:\Windows\system32\cmd.exe
※補足
デフォルトでcmdの居場所はここですが、場所が違ったりする人は適宜変更してください~
④再実行するとうまく行った!
どうやら、シェルスクリプトが実行できない原因は、windowsでの実行場所を教えてあげてないようでした。。。
上記のようにcmdの居場所を設定したら実行できるようになった!
終わりに
今回はJenkinsのついでに、シェル実行時に裏でwindowsがどう動いてるか勉強できた!