2017-10-30 3 views
0

これは、サイズが2 GBを超えるxamarinモバイルアプリケーションです。 私のリードはMSBuildを使用してビルドすることができました。 MSBuildをプラグインとして使用してJenkinsを使用してビルドを自動化するタスクが与えられました。 これは非常に大きなアプリケーションであるため、git pullingはすでに1時間以上かかり、タスクの進行状況バーは約95%を表示しています。ジェンキンを使ってgit pullingを起動する方法を教えてください。

Question 1) How can I speed up this jenkins/git pulling process? 

私は、クライアントの仮想マシン上で働いていますし、インターネットの速度はかなり良いです

私はジェンキンスコンソールを共有しています事前にここ enter image description here

おかげ

答えて

2
  1. 浅いクローン

    git cloneには--depth=<n>を指定できます。ポイントは、フェッチするデータを減らすことです。これは、新しいバイナリファイルが継続的に追加されたリポジトリではうまく動作しません。

  2. 参照クローン

    まずジェンキンスジョブがアクセスできるディレクトリ内の参照リポジトリとして完全クローンを作ります。次に、git clone--reference <path_of_the_reference_repository>を追加します。参照リポジトリは、必要に応じて定期的に、おそらく週に2回程度更新してください。重要なことは、ローカルに存在しないデータをフェッチするためにのみ、すでに参照リポジトリに存在するすべてのデータを再利用することです。

+0

1.浅いところで、設定する深さ(n)はどのように分かりますか?それは 'n'として深さを与えるのは大丈夫ですか?そうでない場合は、どのように決定するのですか?クローンを作成するためにbashスクリプトを使用しているとき、かなり簡単です。しかし、ジンキンズでやっているときには、時間がかかる。これは私の仕事の構成が間違っているからですか? 2.参照リポジトリを提供しようとしました。しかし、どのように私はジンキンズが参照リポジトリからアクセスしていることを確認する必要があります。これを確認できる手段はありますか?もう一度ありがとうございます – SRKprakash

+0

@SRKprakashそれは必要なログのレベルに依存します。最新のコードだけが必要な場合は、n = 1で十分です。 diffを取得する必要がある場合、少なくともn = 2です。異なる深さで試してみると、 'git log'と' git show'を実行して違いを見ることができます。 – ElpieKay

+0

jenkinsが参照リポジトリからアクセスしていることを確認する方法を教えてください。これをチェックする方法はありますか? – SRKprakash

0

あなたは高速ローカルネットワークが、低速なインターネット網を持っている場合は、あなたがどこかにローカルネットワーク上のチェックアウトのコピーを保持し、あなたのビルドを持っているワークスペースにコピーし、続く「gitのプル」を実行することができます"git checkoutブランチ"。これは理想的ではありません。なぜなら、ビルド間の「変更」を失うためですが、それが重要ではない場合は、そのトリックを行う可能性があります。別の考え方は、ワークスペースを削除しないで、単純に "チェックアウト前にきれいにする"ことです。理想的には、あなたは@ElpieKayが提案したことをしたいと思っています。私は代わりを投げているだけです。

関連する問題