从 github 项目发布二进制文件的最佳实践是什么?

从 github 项目发布二进制文件的最佳实践是什么?

我能想到的是:

  • 在项目中创建 bin 文件夹,其中保存二进制文件的副本。 但是,github 是用来存储源代码而不是二进制文件的 定期更改二进制文件可能是昂贵的磁盘空间和带宽?
  • 将二进制文件的副本上载到 项目,或使用一个单独的网站托管您的二进制文件。 然而,这并不总是可行的,需要更多的(手)工作,以保持 最新的二进制文件,我宁愿让二进制文件自动更新或使用 单一动作。
34417 次浏览

什么样的二进制文件? 二进制文件一定是从源文件来的,对吧?

因此,将构建这些二进制文件的源代码作为子模块添加到 git 中。然后在构建过程中,在构建源代码之前首先构建这些二进制文件。子模块与您知道可以工作的源的特定版本保持同步。由于拥有源代码,因此还可以更容易地进行调试。

除非二进制文件是图像等,然后只是存储这些。

如果空间是个问题,那么使用 bitbucket,因为它们有无限的空间。

现在我很清楚,在 github 项目中存储二进制文件非常重要。因此,您需要在其他地方存储二进制文件。我想到的可能的解决办法是:

  • 将二进制文件存储在一个单独的子模块(Dalores 的主意)中。将它们存储在项目 Github 页面中是有意义的,可以通过 github 托管项目网站。
  • 如果你只有一些二进制文件或者压缩文件,你可以通过下载-> 上传一个新文件上传到 github。但是这个特性非常有限,您不能将文件放在结构化文件夹中。
  • 对于 java jar 文件,有一些解决方案,比如 Nexus,可以用来管理库。
  • 将二进制文件存储在您自己托管的一个完全独立的站点上

自2012年12月11日起,不推荐使用 GitHub 上的下载功能。文章 分发大型二进制文件建议使用外部服务:

我们建议将 亚马逊 S3CloudFront配对存储以供使用 通过 CDN,或其他服务,如 SourceForge


但是,自2013年7月2日起,你现在可以 定义释放

版本 ,将软件发送到最终用户的工作流。
版本是带有变更日志和二进制资产的一流对象,它们提供了 Git 工件之外的完整项目历史。它们可以从知识库的主页上访问:

homepage

  • 发行版附有发行说明和下载软件或源代码的链接。
  • 遵循许多 Git 项目的约定,发布与 Git 标记绑定在一起。您可以使用现有的标记,或者让发布版在发布时创建标记。
  • 您还可以将二进制资产(例如已编译的可执行文件、缩小的脚本、文档)附加到发行版 。一旦发布,发布的详细信息和资产对任何可以查看存储库的人都是可用的。

release