web-dev-qa-db-ja.com

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

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

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

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

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

  • バイナリを別のサブモジュールに保存します( dalores idea )。プロジェクトに保存することは理にかなっています github pages 。これを使用して、githubを介してプロジェクトのWebサイトをホストします。
  • 少数のバイナリまたはZipファイルのみがある場合は、[ダウンロード]-> [新しいファイルのアップロード]でそれらをgithubにアップロードできます。この機能はかなり制限されていますが、構造化フォルダーにファイルを置くことはできません。
  • Java jarファイルの場合、ライブラリを管理するための Nexus のようなソリューションがあります。
  • 自分でホストする完全に別のサイトにバイナリを保存します
18
Jos de Jong

2012年12月11日の時点で、 GitHubのダウンロード機能は廃止されました 。記事 Distributing large binaries は外部サービスの使用を推奨しています:

Amazon S ​​と組み合わせたストレージには CloudFront をお勧めします。CDN経由のサービス、または SourceForge などの他のサービスに使用します。


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

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

homepage

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

release

60
vitaut

どんな種類のバイナリ?バイナリはある時点でソースから来たはずですよね?

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

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

スペースに問題がある場合は、無制限のスペースがあるため、bitbucketを使用します。

2
dalore