質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

Q&A

解決済

2回答

444閲覧

Jenkinsからpower shellを呼び出したい

torimingo

総合スコア122

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

0グッド

0クリップ

投稿2023/06/03 05:00

Jenkinsからwindowsのpower shellを呼び出したいです。

jenkinsfile(パイプライン?)に以下のように書きましたが、戻り値が1(失敗)となってしまいます。
(以下の「パス」はpower shellのあるパスを意味します。)
実行環境はchromeです。

パス\powershell.exe "dir"

wsl2のコンソールから上記を実行すると問題なく動作します。
権限が原因なのか、何が原因なのかわかりません。

どのあたりを調査すればいいかや、気になることなどがありましたら
教えて頂けると幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

原因はわかりませんが、以下のURLにアクセスして再起動したらpower shellを呼び出せるようになりました。
jenkinsのURL/restart
お手数をお掛けしました。
ありがとうございました。

投稿2023/06/06 15:19

torimingo

総合スコア122

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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のジョブ?のログには何か具体的なエラーは出力されていますか?

投稿2023/06/03 09:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

torimingo

2023/06/04 09:36

環境は、おっしゃる通り、WindowsとWSL2のLinuxです。 「パス\powershell.exe "dir"」はsteps(に相当する)の中に記述した感じです。 おっしゃる通り、以下のような記述でpower shellを呼び出しています。(JenkinsはLinux側にあります)  sh 'path/powershell.exe "dir"' 戻り値が1となっている以外は、ログが見当たらず、ログをどのように出力すればいいかもわからない状態です・・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問