2017-01-11 6 views
2

のWindowsスレーブにSHコマンドファイルを実行することはできませんパイプラインスクリプトは.shファイルを実行できません。ジェンキンスパイプラインは、私はこのコードを実行してい

[Pipeline] sh 
[D:\workspace\sandbox_pipeline] Running shell script 
sh: D:\workspace\[email protected]\durable-2d7dd2f8\script.sh: command not found 

私が気付くことがあったのは、batで試してみると、この.shファイルが作成されていなくても、罰金が科せられたことです。

何か問題が発生する可能性がありますか?

[UPDATE]

ジェンキンスさんは何とかSH一時ファイルを作成することはできません。既にログ、権限、私の心に来たすべてをチェックしました。

答えて

4
私はまだ根本的な原因約100%はわからないと他の誰かがエレガントな解決策で表示される場合があります前に一度、それを承認しながら、ための答えとして私の回避策を残して

...

def shell(command) { 
    return bat(returnStdout: true, script: "sh -x -c \"${command}\"").trim() 
} 

あなたはまだ CMDSHコマンドを実行

注意

、それは例えば、いくつかの%dがあなたのSHコマンドを破ることができることを意味します。

+1

こんにちはマルセロ。回避策をありがとう。ちょっとした説明:例えば、 "sh" gulp test ""シェル( "gulp test") "というスクリプトを使用するでしょうか? – Dedyshka

+1

@Dedyshkaはい! –

+1

素晴らしい!それは動作しているようですが、$ {command}を引用する必要があります。ありがとう。 – Dedyshka

0

としてはジェンキンスdocsで、あなたの代わりにshbatステップを使用するべきであると述べました。

+0

なぜBATの代わりにシェルDLLを使用したいのですか? –

+0

それは良い習慣についてです。 'sh'はネイティブのWindowsコマンドではなく、公式ドキュメントは' bat'を使うことを推奨しています。 – ForzaGreen

+0

そのナンセンス、叫び、もしあなたが何かを持っていれば、私のシェルはなぜそれを使わないのですか?クロスプラットフォームなものを使わないのはなぜですか?ベストプラクティスとは関係ありませんが、あなたが好きなものは何ですか? –

関連する問題