windowsのpower shellを呼び出したい
wsl2のコンソールから
環境として、
WindowsとWSL2のLinux?が存在するのかなと思いました。
Jenkinsはどちらで動いていますでしょうか?
それによっても変わってくるように思いました。
Jenkinsfileのサンプルはドキュメントから引用すると次のような感じですね。
*Declarative PipelineとScripted Pipelineで記述の仕方が少し異なるので注意ですね・・
Build
Jenkins has a number of plugins for invoking practically any build tool in general use, but this example will simply invoke make from a shell step (sh). The sh step assumes the system is Unix/Linux-based, for Windows-based systems the bat could be used instead.
(機械翻訳)Jenkinsには、一般的に使われているあらゆるビルドツールを呼び出すためのプラグインが多数用意されていますが、この例では、シェルステップ(sh)からmakeを呼び出すだけにしています。shステップは、システムがUnix/Linuxベースであることを前提としており、Windowsベースのシステムでは、代わりにbatを使用することができます。
jenkins
1 steps {
2 sh 'make'
3 archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
4 }
Using a Jenkinsfile
sh
のところに記述できるのが環境によって少し異なるみたいですね。
- Pipeline: Nodes and Processes
- bat: Windows Batch Script
- dir: Change current directory
- node: Allocate node
- powershell: Windows PowerShell Script
- pwsh: PowerShell Core Script
- sh: Shell Script
Pipeline Steps Reference
質問欄の
「パス\powershell.exe "dir"」
はsteps(に相当する)の中に記述した感じでしょうか?
Windows上のJenkinsからWindowsのPowerShellを呼び出す場合は次のような感じで記述すれば良いのかなと思います。
powershell 'dir'
WSL2上のJenkinsからWindowsのPowerShellを呼び出す場合は次のような感じで記述すれば良いのでしょうか・・?
sh 'path/powershell.exe "dir"'
*ちょっとWSL2を手元で使える環境がないため、そもそもWSL2側からWindows側をどう呼び出せるのかよくわかっていません・・
WSL2にPowerShell Coreをインストールできるのであれば、
WSL2上のJenkinsからは次のように使えると思います。
pwsh 'dir'
戻り値が1(失敗)となってしまいます。
Jenkinsのジョブ?のログには何か具体的なエラーは出力されていますか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。