开源改变世界!!

2.0 构建自动化 #732

推推 grbl 2年前 (2023-01-27) 124次浏览
关闭
绕线器 打开了这个问题 2017 年 9 月 5 日 · 17条评论
关闭

2.0 构建自动化#732

绕线器 打开了这个问题 2017 年 9 月 5 日 · 17条评论

注释

2.0 构建自动化 #732
所有者

#731完成后,构建需要自动化。不幸的是,Jenkins 可能不再适用于此,因为由于(仅限 mac)和 Linux 替代方案Mac OS之间的差异,使用 Linux 构建可能无法正常工作。hdiutilgenisoimage

工件也应该部署到 Sourceforge,而不是依赖于 cloudbees。

Jenkins 替代方案的一个选择是 TravisCI,它有可用的 mac 构建机器。

2.0 构建自动化 #732 winder 将此添加到 2.0里程碑 2017 年 9 月 5 日
2.0 构建自动化 #732
所有者作者

我有一个针对 Windows/Linux 的自动构建,其中包括 Java:
Linux
Windows

要让 OSX 安装程序正常工作,还有一些工作要做。我可以手动运行它,但自动构建机器运行 Linux,但缺少我需要的实用程序之一。

2.0 构建自动化 #732
所有者作者

请尝试上面的链接,让我知道它们是否有效。我能够将它们安装在 32/64 位 Windows/Linux 虚拟机上。如果您尝试一个,请包括您正在运行的操作系统和体系结构。

2.0 构建自动化 #732
合作者

我很好奇您在使用 MacOS 构建时遇到的问题。为什么来自 genisoimage 的图像不起作用?

2.0 构建自动化 #732
所有者作者
绕线机 评论了 2018 年 3 月 28 日  

@breiler该实用程序在詹金斯机器上不可用。我已经包含了一些原生的 7zip 二进制文件,所以应该只将它包含在项目中。

我在这里发表了一篇关于 OSX 捆绑包的博客文章,以获取有关此实现的完整故事,因为它非常复杂。我也应该为 Linux/Windows/RPi 捆绑包制作另一个,因为它们也非常相关,并且围绕创建 JRE 捆绑包做了一些新颖的事情。

2.0 构建自动化 #732
合作者

我可以试一试。您可能已经检查过,Jenkins 机器有mkisofs吗?

2.0 构建自动化 #732
所有者作者

我不确定,我很难从 cloudbees 获取信息。如果您在https://www.cloudbees.com/创建一个帐户,我可以邀请您加入该项目。

2.0 构建自动化 #732
合作者

我已经做了一些实验,想要一些输入。

我让安装程序在 MacOSX 上工作,但它仍然需要一些工作。由 Netbeans 创建的生成的可执行脚本缺少可执行标志。如果用户使用的是 Java 9,则安装程序根本无法运行。创建安装程序的过程不是很清楚,我认为它太复杂了……正如您在博客中所写,这不是在某些操作系统上安装程序的预期方式。我认为我们应该放弃安装程序(至少对于 MacOSX)。

我想尝试的另一个选项是使用带有 Travis 的 dmg-images,它提供了安装所需额外软件的方法。它没有用于将二进制文件上传到 SF 的插件,所以我尝试了 Bintray 和 Github。Bintray 的上传限制为每个文件 50Mb。Github 似乎可以工作并且没有任何下载配额限制(我能找到)。

我尝试使用 Github 为夜间构建和发布设置一个构建过程,但在 Travis 的触发和标记方面仍然存在一些问题。在继续之前,我想知道这条路是否值得探索?

构建的结果如下所示:
https ://github.com/breiler/Universal-G-Code-Sender/releases

travis.yml (WIP) 示例:
https ://github.com/breiler/Universal-G-Code-Sender/blob/master/.travis.yml

2.0 构建自动化 #732
所有者作者

当您说废弃 MacOSX 安装程序时,您指的是 Netbeans harness 中内置的安装程序吗?我对此完全满意(这就是我花时间在create-dmg目标上的原因,尽管这也很复杂)。我认为捆绑的 JRE 也不能与内置的 MacOSX 安装程序一起使用。可以通过利用可构建的create-dmg图像来简化目标build-jre-bundles.xml

迁移到 Travis 很好,它的一大好处是支持原生 MacOSX 构建节点。Gephi 项目也在使用 Travis:
https ://github.com/gephi/gephi/blob/master/.travis.yml

我不反对在其他地方托管二进制文件,目前在 cloudbee 上的夜间构建托管并不理想。我听说过关于 artifactory/bintray 的好消息,但还没有研究它,我认为这可能是正确的方法,但是 OSS 的 1TB 下载限制对于 UGS 来说可能不够(尤其是当有一个捆绑的JRE)。我有一个愿望清单项目是很好的下载统计数据,尤其是对于自动更新工件——bintray 的免费版本有这个吗?我可能会考虑将 github 用于里程碑版本,但我认为将夜间构建放在那里可能太吵了。

2.0 构建自动化 #732
合作者

是的,我的意思是从 Netbeans 中删除安装程序。

bintray 中有统计数据,但我不知道它是否有用。我尝试下载几个文件但没有显示…从 Travis 上传时文件可能不超过 50MB,正如您所说的 1TB 下载限制。所以我觉得bintray不适用于UGS。

你对 github 的看法是正确的,它可能会变得臃肿。

您正在使用 sourceforge 作为更新站点,我可以尝试在 travis 中设置一个脚本来将二进制文件复制到那里吗?

2.0 构建自动化 #732
所有者作者

看起来 Artifactory 有一个 OSS 赞助计划,我提交了一份申请。如果它被批准,它看起来是最好的选择。Cloudbee 和 POEditor 的使用得益于与这些公司的类似赞助计划。

2.0 构建自动化 #732
合作者

甜的!

2.0 构建自动化 #732
所有者作者

@breiler我们有一个 Artifactory 服务器 :)
我尝试了一些基本的集成,看起来它应该可以很好地工作:https ://github.com/winder/Universal-G-Code-Sender/blob/deployments/.travis.yml #L14

我需要做更多的工作来弄清楚权限和最佳实践。

2.0 构建自动化 #732
合作者

travis 的进展如何?

我尝试设置一个实例并在部署分支中运行 travis 脚本并遇到了一些问题。我不得不删除部署配置文件。

你怎么看这个:
https ://github.com/breiler/Universal-G-Code-Sender/blob/deployments/.travis.yml

我用感觉更安全的 API 密钥替换了伪造的用户名和密码?
我也很想看到要存储的 jar-artifacts。这样就可以在它自己的链接到 UGS 库的项目中编写插件。

2.0 构建自动化 #732
合作者

你好@winder,

我尝试为 Windows、树莓派和 Linux (x64) 构建包:
https ://ugs.jfrog.io/ugs/webapp/#/artifacts/browse/tree/General/UGS/nightly

文件名中的点不是一个好主意,你能删除它吗:
https ://ugs.jfrog.io/ugs/webapp/#/artifacts/browse/tree/General/UGS/nightly/ugs-platform-app- 2.0-SNAPSHOT.win.zip

2.0 构建自动化 #732
所有者作者

非常酷,谢谢@breiler

2.0 构建自动化 #732
合作者

由于新软件包已到位,我将关闭它。