73

githubプロジェクトからバイナリを配布するためのベストプラクティスは何ですか?

私は考えることができます:

  • バイナリのコピーを保持するbinフォルダをプロジェクトに作成します。ただし、githubはバイナリではなくソースコードを保存することを目的としています。大きくて定期的に変更されるバイナリを保存すると、ディスクスペースと帯域幅が高価になる可能性がありますか?
  • バイナリのコピーをプロジェクトのgithubページにアップロードするか、別のWebサイトを使用してバイナリをホストします。ただし、これは常に実行可能であるとは限らず、バイナリを最新の状態に保つためにより多くの(手作業による)作業が必要です。むしろ、バイナリを自動的に、または1回のアクションで更新する必要があります。
4

3 に答える 3

63

2012年12月11日の時点で、GitHubのダウンロード機能は廃止されました。記事「大規模なバイナリの配布」では、外部サービスの使用を推奨しています。

CDNまたはSourceForgeなどの他のサービスを介してサービスを提供するためにCloudFrontとペアになっているストレージにはAmazonS3をお勧めします。


ただし、2013年7月2日以降、リリースを定義できるようになりました。

リリース、エンドユーザーにソフトウェアを出荷するためのワークフロー。
リリースは、Gitアーティファクトを超えた完全なプロジェクト履歴を提示する変更ログとバイナリアセットを備えたファーストクラスのオブジェクトです。リポジトリのホームページからアクセスできます。

ホームページ

  • リリースには、ソフトウェアまたはソースコードをダウンロードするためのリリースノートとリンクが付属しています。
  • 多くのGitプロジェクトの慣習に従い、リリースはGitタグに関連付けられています。既存のタグを使用することも、公開時にリリースにタグを作成させることもできます。
  • バイナリアセット(コンパイルされた実行可能ファイル、縮小されたスクリプト、ドキュメントなど)をリリースに添付することもできます。公開されると、リリースの詳細とアセットは、リポジトリを表示できるすべての人が利用できるようになります。

リリース

于 2013-01-23T19:01:14.043 に答える
19

githubプロジェクト自体にバイナリを保存しないことが重要であることは今では明らかです。したがって、バイナリを別の場所に保存する必要があります。私が遭遇した可能な解決策は次のとおりです。

  • バイナリを別のサブモジュールに保存します(dalores Idea)。それらをプロジェクトのgithubページに保存することは理にかなっています。このページは、githubを介してプロジェクトのWebサイトをホストするために使用します。
  • バイナリまたはzipファイルが数個しかない場合は、[ダウンロード]->[新しいファイルのアップロード]からgithubにアップロードできます。ただし、この機能はかなり制限されていますが、構造化フォルダーにファイルを配置することはできません。
  • Java jarファイルの場合、ライブラリを管理するためのNexusのようなソリューションがあります。
  • 自分でホストする完全に別のサイトにバイナリを保存します
于 2012-05-03T14:27:45.527 に答える
2

どんな種類のバイナリ?バイナリは、ある時点でソースから来たに違いありませんか?

したがって、これらのバイナリをビルドするソースをgitのサブモジュールとして追加します。次に、ビルドプロセスで、ソースをビルドする前に、まずこれらのバイナリをビルドします。サブモジュールは、機能することがわかっているソースの特定のバージョンと同期されます。また、ソースがあるため、デバッグが容易になるという利点もあります。

バイナリが画像などでない限り、それらを保存するだけです。

スペースが問題になる場合は、無制限のスペースがあるため、bitbucketを使用してください。

于 2012-05-01T16:27:48.910 に答える