3

現在、私の Jenkins セットアップは 1 つのエグゼキュータに制限されています。ビルドごとに作成されるユーザー固有のログ ファイルがあるため、これはビルドのほとんどの要件です。複数のエグゼキュータを取得するために、ローカル ボックスでスレーブをセットアップしました。すべてのスレーブで同じワークスペースを共有したかったので、シンボリック リンクを作成しました。そうは言っても、グループベースのワークスペースになるように、ワークスペースで 775 を chmod する必要がありました。複数のジェンキンススレーブが1つのワークスペースを共有する方法はありますか?

編集:私の1人のエグゼキューターの制限に関して。私たちのアプリケーションはアクション スクリプト アプリであり、ビルド中に実行され、フラッシュ ログを作成する多くの単体テストがあります。ビルドごとにフラッシュ ログを取得できるようにしたいと考えています。UNIX のフラッシュ ログは、ユーザーのホーム ディレクトリに保存されます。バージョン 10.1 以降、mm.cfg の場所を変更することはできません。Jenkins はユーザーとして実行されるため、flexunit テストの複数のインスタンスを同時に実行することはできず、フラッシュ ログを正しくキャプチャすることはできません。

ここに私が得ているいくつかのパーマの失敗があります:

Fetching upstream changes from git@company:repo/repo.git
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
hudson.plugins.git.GitException: Error performing command: git fetch -t git@company:repo/repo.git             
+refs/heads/*:refs/remotes/origin/*
Command "git fetch -t git@company:repo/repo.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: error: insufficient permission for adding an object to repository database .git/objects

fatal: failed to write object
fatal: unpack-objects failed

at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:776)
at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:741)
at hudson.plugins.git.GitAPI.fetch(GitAPI.java:190)
at hudson.plugins.git.GitAPI.fetch(GitAPI.java:978)
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:765)
at hudson.plugins.git.GitSCM.access$100(GitSCM.java:80)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1003)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:970)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2045)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:287)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)

原因: hudson.plugins.git.GitException: コマンド "git fetch -t git@company:repo/repo.git +refs/heads/ :refs/remotes/origin/ " がステータス コード 128 を返しました: エラー: 追加するための権限が不十分ですリポジトリ データベースへのオブジェクト .git/objects

4

2 に答える 2

1

更新: この回答は正しくありません。コメントを参照してください。

すべてのスレーブのノード構成に移動し ( http://[jenkins_server]/computer/[slave_name]/configure)、リモート FS ルートをマスターのホーム ディレクトリの値に設定します。マスターのホーム ディレクトリは、. 念のため、[ホーム ディレクトリ] の下の[詳細] ボタンをクリックし、[ワークスペース ルート ディレクトリ]が次のように設定されていることを確認します (スレーブは でワークスペースを作成するため)。http://[jenkins_server]/configure${ITEM_ROOTDIR}/workspace[Remote FS root]/workspace

とは言っても、同じワークスペースでさまざまなスレーブからジョブを実行しようとして、さまざまな問題が発生しないことを保証することはできません。

于 2012-02-20T04:57:21.483 に答える
0

ビルド間で永続化/共有したい情報をワークスペースに保存すると仮定します。そのためには、Copy toSlavePluginの使用を検討することをお勧めします。

于 2012-02-20T10:03:46.017 に答える