5

私は、SCons を使用して書かれたビルドのための賢明な解決策を考え出そうとしています。これは、Unix のようなパスなどを使用して、Unix のような方法でアクセスできる非常に多くのアプリケーションに依存しています。 SCons プラグイン、または Jenkins の Git プラグインを使用するには、次のようなものを使用してプラグインを呼び出そうとしcmd /c git.exeます。Git は Cygwin を使用してインストールされ、Cygwin シェルでのみ認識され、CMD では認識されないため、これは確実に失敗します。しかし、たとえ git と残りの部分を cmd.exe で利用できるようにしても、他の問題が発生します。Cygwin バージョンの Git は、パスにスラッシュがあることを想定し、バックスラッシュをエスケープ文字として扱います。ばかばかしい Windows ファイル システム関連の問題も発生します (自分のファイルを削除する権限を Jenkins に与えることはできません!)。

では、どうにかして Jenkins に Cygwin シェルのみを使用させ、cmd.exe を使用させないようにする方法はありますか? または、これを処理するために VM で Linux を実行する準備をする必要がありますか?

4

4 に答える 4

2

次のように、特定のシェル コマンドを使用して cygwin コマンドを実行するように Jenkins を構成できます。

c:\cygwin\bin\mintty --hold always --exec /cygdrive/c/path/to/bash/script.sh

script.shJenkins の実行に必要なすべてのコマンドを実行する場所。

于 2013-06-21T10:23:14.443 に答える
1

記録のために、私が最終的にやったことは次のとおりです。

  1. SYSTEMCygwin にユーザーを追加し、mkpasswd -u SYSTEM
  2. /etc/passwd新しく作成されたユーザーのホーム ディレクトリをレコードに追加して編集します。これで、次のようになります。

    システム:*:18:544:、S-1-5-18:/ホーム/システム:

  3. .netrcなどの自分のユーザーの構成設定.sshをホームにコピーしましたSYSTEM。次に、Windows エクスプローラーから一連のポップアップを介して、これらすべてのファイルの所有権をSYSTEMユーザーに要求しました。一つずつ!私はマイクロソフトが大好きです!Jenkins では、他の環境変数などを設定するビルドのラッパーを実行するようになりました。c:\cygwin\bin\bash --login -i /path/to/script/script

  4. 構成の他の問題のためにそれをあきらめ、Jenkins サービスを ではなく私のユーザーの下で実行しましたSYSTEMこれを行う方法に関するブログ投稿は次のとおりです。次に、Jenkins サービスを見つけ、そのプロパティを選択し、[ログオン] タブに移動して、ユーザーを「このユーザー」に変更します。

于 2013-06-30T07:37:36.277 に答える