jenkinsの定義からさまざまなビルドスクリプトをすべて取り出して、ソースリポジトリの1つ以上のスクリプトに格納しようとしています。windows上でスクリプトを実行しているjenkins
一部のスクリプトはシェルスクリプトであり、一部はバッチファイルです。シェルスクリプトは、c:¥program files¥git¥git-bash.exeを実行し、いくつかのgitコマンドを実行することによって起動します(いいえ、私はプラグインを使用していません - 私のjenkinsサーバーではなく、この作業を行うためのアクセス権があるので、スクリプトファイルからgitコマンドを実行します)。変数を設定したり、ビルド用のファイルを設定したりするために、他の作業も行われます。
問題は、そのシェルスクリプトからバッチファイルを実行しようとしています。 step1.shスクリプトが
# Override Jenkins value
WORKSPACE=/f/git/project
WIN_WORKSPACE=`cygpath -w $WORKSPACE | sed 's/\\\\/\\\\\\\\/g'`
echo "WIN_WORKSPACE: $WIN_WORKSPACE"
...
echo "Building!"
echo cmd.exe /c call builds\\step2.bat $WIN_WORKSPACE
cmd.exe /c call builds\\step2.bat $WIN_WORKSPACE
echo "done building"
までそのように動作
#!c:\Program Files\Git\git-bash.exe
/f/git/project/builds/step1.sh $MASTER_BRANCH $BUILD_TYPE $TAG_CLIENT
:ジェンキンスで
、私は(引数として渡された三つのパラメータで)プロセスをキックオフするために1つのシェルスクリプトを持っています何が起こるかというと、(とまたは「コール」キーワードなし)cmd.exeのは、単にコマンドプロンプトに飛び出すと、私は、「exit」と入力するまでそこに座っているということです。
Building!
cmd.exe /c call builds\step2.bat F:\\git\\project
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
F:\git\project>exit <--- I have to type that.
exit
done building
バッチファイルをgit-bashシェルから実行することはできますか?より良いアプローチがありますか?私はバッチファイルに変換しようとしていますが、(コマンド出力のキャプチャや変数への格納のような)シンタックスは、シェルスクリプトでうまくいきます。ビルドの別の部分を完了するために別のサーバーと通信するためのビルド・プロセスの後半に、少なくとも2つのシェル(期待)スクリプトを実行する必要もあります。
さて、それをしました。どうして? – Jon
Gitはウィンドウと滑らかではないので、Cygwinはbashとcmdを渡す方が良いので、ウィンドウposixのパスは失敗します。 [ここ](https://github.com/git-for-windows/build-extra/blob/master/installer/ReleaseNotes.md)[ここ](https://github.com/lavv17/lftp/issues/) 109)[と多分ここで](http://stackoverflow.com/questions/11865085/out-of-a-git-console-how-do-i-execute-a-batch-file-and-then-return- to-git-conso) – Bloodied