1

私のコードは、複数の人 (複数のマシン) によって 1 日に複数回コンパイルされます。誰かがコンパイルを完了するたびに、各コンパイルが自動的に Github アカウントにアップロードされるようにしたいと考えています。基本的に、これらのコンパイルされた zip は、フラッシュ ドライブ、電子メール、またはドロップボックス (多くの条件に基づく任意の数の方法) を介して実際のハードウェアに送信されます。zip には常に同じ名前が付けられるため、古いバージョンがデバイス上で削除されたり、/old ディレクトリに保存されたりすることがあります。古いバージョンを失うのをやめて、各バージョンの中央リポジトリを時系列で保存したいと考えています。Github はそのための最適な場所のようです。

もちろん、作成した完成した zip を中央の場所にアップロードするように各ユーザーに依頼することもできますが、可能であれば自動プロセスにしたいと考えています。では、Github はそのような機能を提供していますか?

4

3 に答える 3

4

Github はそのための最適な場所のようです。

大規模なバイナリを分散レポ (つまり、全体が複製されたレポ)に配置することはお勧めできません

バイナリの特定のバージョンを取得するには、デプロイする適切なリポジトリを選択する前に、GitHub から「アーティファクト」リポジトリを複製する必要があります。
そして、複数の配信により、そのレポはますます大きくなり、クローンが長くなります.
ただし、デプロイする場所が 1 つしかない場合、git fetch が新しいアーティファクト (増分更新) しか取得しないのは事実です。

しかし:

  • GitHub は無制限のスペースを提供していません (繰り返しますが、そのレポはすべての配信で急速に成長します)
  • リポジトリのクリーニング (つまり、必要のない古いバージョンのバイナリを削除すること) は困難です。

繰り返しになりますが、配信目的で GitHub やその他の DVCS (分散型 VCS) を使用するのは適切ではないようです。

Nexusのようなパブリック アーティファクト リポジトリをセットアップできれば、必要な数のバイナリを配信でき、それらを簡単にクリーンアップ (削除) できます。

于 2012-07-01T22:19:52.737 に答える
3

Githubには、リポジトリに添付されたファイルの概念があり(実際にはリポジトリにはありません-それらはs3に保存されています)、ファイルをアップロードするためのAPIがあります。

ビルド プロセスの一部としてその API を呼び出すことができます。

コミットのたびにコードをビルドする継続的インテグレーション サーバーがある場合、ビルド プロダクトをどこかに保存するためにそれを取得できるはずですが、(CI ではなく GitHub に保存する場合は、自分でインテグレーションを処理する必要がある場合があります)サーバーのハードディスク)

于 2012-07-01T22:22:25.433 に答える
2

github はソースでの共同作業には最適ですが、ビルドとその成果物を管理するためのものではありません。最終的には、ホストされたビルドおよび統合環境を提供し、ソース管理を超えたワークフロー部分を正確に対象とするCloudbeesのような企業に注目したくなるかもしれません。しかし、それらは主に Java 開発を対象としており、ニーズに合う場合と合わない場合があります。

それに加えて、多くの人がアクセスできるビルドからのタイムスタンプ付きの大量の zip ファイルだけが本当に必要な場合は、古き良き時代の FTP サーバーで十分ではないでしょうか?

于 2012-07-02T18:13:35.217 に答える