开发人员区域

用MATLAB开发高级软件

服务的礼物

WELP,这是假期!无论您是庆祝圣诞节,汉古,Kwanzaa,Festivus,或者,您都知道,周二,我当然祝你一个幸福,幸福地接近一个非常令人挑战和挑战的一年。希望你确实有一些东西要庆祝并感激,而且我在这里让你在一些礼物上,我们一直在努力我们希望得到好评!

在一年中的这个时候,我们都认为我们所有人都思考我们可以参与他人的服务,减轻了那些面临挑战的人的负担,并努力做我们每个人都可以让世界变得有点一个更好的地方。嗯,当我不想声称这是在同一个联赛中真实的我很高兴能够戴上我的测试、CI和DevOps的帽子,为那些可能会发现很难实现我们在这个博客上有时谈到的价值的人送去一些好的礼物。

这些礼物以服务的形式出现在他们自己的权利里,或者更恰当的说法是服务.我的意思是什么?好吧,如果你是这篇博客的读者,你知道我们会关心持续的集成,实心测试实践和其他形式的开发软件,导致可重复性和鲁棒性。我们经常通过显示与Jenkins的示例来完成这一完成,最近甚至生产和高亮显示A.詹金斯插件让你的Jenkins设置更容易。

希望这对您有所帮助,但设置您自己的Jenkins设置可能有点投资。有时会遇到设置方面的挑战,也会有学习曲线。然后,设置好后,您就可以注册管理和维护it基础设施,也就是说,您的机器将对每个提交或拉取请求运行测试和执行其他CI相关活动。好吧,确实有一些好消息要分享!

我说的是服务的礼物,我指的是我们对一些真正伟大的CI服务的支持。万博1manbetx现在有各种各样的服务可以在云中的机器上运行您的CI构建,只需要添加一点即可亚马尔到你的GitHub仓库。其中一些关键服务包括特拉维斯CI,GitHub的行为,Circleci., 和Azure管道(包括在Azure DevOps保护伞下)。简言之:

这些服务提供和启动基于云的构建代理,为您完成所有工作,您不必担心管理机器、机器的健康状况和正常运行时间,也不必担心当您需要提供一台能够完成某些工作的机器时会遇到的任何问题。

还有什么?这些服务使其超级易于入门,特别是对于公共存储库中的开放方式完成的开源项目。入门建筑物为公共项目是免费的!您只需将应用程序安装到Github repo,将一点配置代码添加到Yaml文件中并将其放入您的回购中,您将很好。

想看它?让我们尝试用这个方法,tavis ci尝试一下。我可以用我展示这个本地分叉其中一个Mathworks的深度学习回购。此回购包含使用佩带的脸部检测的工具MTCNN.

步骤1:注册该服务

为了利用这些服务,您需要注册并允许他们访问您的存储库。这使他们能够查看git分支上的请求和提交,并对其作出反应。它还允许这些服务将其集成安装到您的GitHub repo或组织中。一旦这些集成在您的存储库中,您的CI结果将直接显示在正在进行工作的GitHub中。对于每个服务,这个过程的细节都是不同的,但是在标准的GitHub集成过程中,它们都非常相似。今天,我们将介绍Travis CI。

要执行此操作,首先只需转到travisci.com然后单击注册:

这将使您能够注册该服务。对于Travis CI,您只需利用现有的GitHub帐户即可。如果您的代码是由GitHub以外的服务托管的,您也可以在那里选择,这取决于您正在使用的服务,您可能有不同级别的支持。您可以看到Travis CI对其他3家主机提供商提供了测试版支持:万博1manbetx

一旦你使用你的GitHub凭证登录,你就可以授权服务操作你的存储库。请自行确认您和您的组织是否愿意向服务提供这些权限以代表您进行操作,然后单击授权:

既然Travis CI被授权,您可以激活您希望该服务运行的哪些存储库:

快到了!如果愿意,您可以选择组织中所有当前(和未来)存储库,也可以选择专门为每个存储库激活服务。选择要运行服务的代码,现在就准备好了:

第2步:添加CI配置

好的,现在已经为您的GitHub组织安装了服务,它正在焦急地监视您的请求和提交,准备为您运行CI流程。但您的CI流程是什么?服务需要知道某物关于您的存储库,以便它可以知道如何提供帮助。这就是yaml进来的地方。您现在可以以yaml文件的形式指定您的CI配置,您可以在代码旁边查看。这是如此原则配置代码,这是管理您的CI信息的好方法,但也许我们可以在未来的帖子中更深入地了解这一哲学。

在MATLAB中怎么做呢?实际上,我们要怎么做我们特定的深度学习MATLAB库? 嗯,这是令人惊讶的简单。不过首先,您应该知道,我对我们正在设置的存储库一无所知。我对代码一点也没有贡献,甚至对问题领域的知识也有限。我们有一个非常有才华和知识渊博的团队咨询工作人员谁设置了这个回购。事实上,他们已经建立了杠杆项目。就像我们之前讨论过的,利用项目使任何人都可以在没有任何领域或预先存在的项目知识的情况下开始使用存储库。注意Travis CI符合这一要求。和我一样,它对项目一无所知,不知道如何构建,也不知道应该运行哪些测试。好在项目已经知道如何启动和测试自己了。因此,要使Travis CI能够完成它的工作,我们只需要将以下一行代码放入名为特拉维斯·伊梅尔先生存储库的根目录中的文件:

语言:matlab

就这样。真的,就这样!因为这个项目知道如何在一个有效的环境中启动任何机器(包括Travis CI正在使用的云中短暂的机器),我们只需要告诉Travis CI项目正在使用哪种语言,剩下的就由我们的语言支持来完成。过来看:万博1manbetx

这是刚刚发生的事情:

  1. 首先,GitHub怎么样暗模式?如果你问我的话,我觉得很漂亮,很养眼。
  2. 我为Matlab语言创建了最小的Travis Ci配置,将其提交给特拉维斯·伊梅尔先生文件。
  3. Travis CI看到了这个提交,准备了一台机器来运行MATLAB语言的标准CI进程。
  4. 我们在特拉维斯CI纺丝旋转的这个短暂实例上设置MATLAB。这历来是使用Matlab使用这些服务的最大挑战之一。我们非常兴奋地提供一些进展。
  5. 然后以批处理模式运行Travis CI MATLAB支持的默认运行命令。万博1manbetx当使用项目时,结果是按照项目中指定的方式运行所有测试。如果未使用项目,则会发现并运行在源树中找到的所有测试。但是在后一种情况下,没有项目启动来确保项目环境正确设置,因此这将是测试的责任,以确保执行所需的步骤,例如确保在路径上有正确的源代码。这可以不使用MATLAB项目来完成,但它们使它非常容易。
  6. 构建通过还是失败取决于该命令是否正确地完成。使用(相对)新的assertSuccess方法matlab.unittest.testresult.,测试失败会转化为错误,因此,如果存在任何测试失败,则生成将失败。

好了。就这么简单。如果要运行默认命令以外的其他命令,可以重写脚本标记并调用matlab批myCustomScript哪里myCustomScript被检查到项目中,可以自定义以运行您的自定义CI过程,可能更适合您。

最后的礼物?在批处理模式下对这些CI服务的MATLAB使用对公共项目是免费的。我们热爱开源!...A.nd we are excited to see how these services can help improve the quality of MATLAB projects all over the world. I can't think of a better way to accelerate the pace of engineering and science. We'd love to hear how you are using these services, or maybe how you plan to. Happy Holidays!




发布与MATLAB®R2020B

|

注释

如需留言,请点击这里登录到您的MathWorks帐户或创建新帐户。