开发区域

使用MATLAB先进的软件开发

服务的礼物

好了,这是节日!无论你是庆祝圣诞节、光明节、宽扎节、节日节,还是,你知道的,周二,我都希望你在这前所未有、充满挑战的一年里有一个健康快乐的结局。希望你确实有一些值得庆祝和感激的事情,我在这里向你介绍一些我们正在研究的礼物,希望它们会受到欢迎!

每年的这个时候,我想这对我们来说是很常见的思考方式我们可以参与服务他人,减轻人的负担所面临的挑战和整体努力做我们每个可以让世界的一个更好的地方。虽然我不想说这和所有的真正的善于帮助边缘化和下降拖延,我很高兴能够掌握我的测试,ci和devops帽子,为那些可能发现有点难以实现我们有时谈论这博客的价值的人提供一些好的礼物.

这些礼物在自己的权利中以一系列服务形式出现,或者这可能更适当地说明服务.我是什么意思?如果您已经阅读了这篇博客一段时间,您就会知道我们关心的是持续集成、可靠的测试实践,以及其他形式的软件开发,这些都可以带来可重现性和健壮性。我们经常通过Jenkins的例子来说明这是如何做到的,最近甚至还制作了突出显示一种Jenkins插件让你的Jenkins设置更容易。

希望这一直很有用,但建立自己的Jenkins设置可以有点投资。有时有建立挑战,可以有一个学习曲线。然后,将其设置为后,您将注册以管理和维护您的IT基础架构,即您的计算机将运行测试并在每个提交或拉出请求上执行其他CI相关活动。好吧,确实有一些好消息分享!

我在谈论服务的礼物,我的意思是我们对一些真正的CI服务的支持。金宝app现在有各种服务将在云中的计算机上运行CI,只不过是添加一点yaml.到你的github存储库。其中一些关键服务包括特拉维斯CI.github动作CircleCI,蔚蓝的管道(包括在Azure Devops伞下)。简而言之:

这些服务提供并旋转基于云的构建代理,为您提供所有工作,并且您从未涉及管理机器,他们的健康和正常运行时间,或者在您的负担时呈现您的任何问题提供一种可以做一些工作的机器。

还有什么?这些服务使得启动非常容易,特别是对于在公共存储库中公开完成的开源项目。开始建造公共项目是免费的!你只需要在你的GitHub repo上安装一个应用程序,在YAML文件中添加一些配置代码,然后把它放到你的repo中,你就可以开始了。

想看到它吗?让我们用这种方法的先驱之一Travis CI来尝试一下。我可以用本地叉子MathWorks的一份深度学习报告这个repo包含了人脸检测工具使用预先训练MTCNN.

第1步:注册服务

为了利用这些服务,您需要注册并让您访问存储库。这使它们能够查看和反应在您的Git分支上提取请求并提交。它还允许这些服务将它们的集成安装到GitHub repo或组织上。一旦这些集成在您的存储库中,您的CI结果将直接显示在发生工作的GitHub中。每个服务的此过程的细节都不同,但它们都与他们通过标准GitHub集成流程进行了相似。今天,我们将走过特拉维斯CI。

要做到这一点,首先去吧travisci.com.然后点击注册:

这将使您能够注册该服务。对于Travis CI,您可以简单地利用现有的GitHub帐户。如果您的代码由Github以外的服务托管,您也可以在那里提供选项,具体取决于您使用的服务,您可能会有不同级别的支持。金宝app您可以看到Travis CI对3个其他托管提供商有3个支持:金宝app

使用GitHub凭据登录后,您可以授权服务在存储库上运行。确认您自己和您的组织很乐意为您的服务提供这些权限,以代表您运行,然后,一旦您,单击“授权:

现在Travis CI已经被授权,您可以激活您希望服务操作的存储库:

差不多好了!如果您愿意,您可以选择组织中的所有当前(和未来)存储库,也可以选择专门为每个存储库激活服务。选择您希望使用的代码以抵御,以及您去,您已准备就绪:

步骤2:添加CI配置

好吧,现在该服务是为您的GitHub组织安装的,它焦急地观看您的拉出请求和提交,随时为您提供您的CI流程。但是你的CI过程是什么?服务需要知道某物以便它能够知道如何提供帮助。这就是YAML发挥作用的地方。现在可以以YAML文件的形式指定CI配置,您可以在代码旁边签入该文件。这遵循的原则是配置为代码,这是管理CI信息的好方法,但也许我们可以在未来的文章中更深入地探讨这一理念。

我们如何为matlab做这件事?实际上,我们如何这样做我们的特定深度学习MATLAB存储库还是嗯,这很简单。首先,你应该意识到我对我们正在设置的这个存储库一无所知。我根本没有贡献代码,甚至有一个有限的知识甚至是问题域。我们有一个非常有才华和知识渊博的人咨询职员是谁建立了这个回购协议。事实上,他们已经建立了杠杆项目。就像我们之前讨论过的那样,利用项目使任何人能够在没有任何域名或预先存在的项目知识的情况下开始使用存储库。请注意,特拉维斯CI适合此账单。像我一样,它真的对这个项目没有了解,它是如何构建的或应该运行的测试。项目已经知道如何启动和测试自己。因此,我们需要做的就是启用Travis CI要做它的事情就是将以下单行放入名为的文件中.travis.yml.文件在存储库的根目录下:

语言:Matlab.

就是这样。真的,就是这样!由于此项目知道如何启动有效的环境任何机器(包括Travis CI的云中的云机器中使用的临时机器),我们需要告诉Travis CI的只是该项目使用的语言和我们的语言支持剩下的那种语言。金宝app一探究竟:

下面是刚刚发生的事情:

  1. 首先,这个github怎么样黑暗模式还是如果你问我,漂亮的光滑而且在眼睛上轻松。
  2. 我为MATLAB语言创建了最小的Travis CI配置,并将其提交给.travis.yml.文件。
  3. Travis CI看到此提交,配置了一台机器以运行MATLAB语言的标准CI进程。
  4. 我们在Travis CI旋转的这个短暂实例上设置了MATLAB。这一直是在MATLAB中使用这些服务的最大挑战之一。我们很高兴能在这里取得一些进展。
  5. 然后以批处理模式运行Travis CI MATLAB支持的默认运行命令。金宝app使用项目时,结果是所有测试都在项目中指定运行。如果未使用项目,则发现并运行源树中找到的所有测试。但是在后一种情况下,没有项目启动以确保项目环境正确设置,因此这将是测试的责任,以确保执行所需的步骤,例如确保正确的源代码在路径上。它可以在不使用MATLAB项目的情况下进行,但它们使其变得如此简单。
  6. 构建通过或失败,具体取决于此命令是否无需错误。使用(相对)新的assertsuccess.的方法matlab.unittest.TestResult,测试失败变为错误,从而在存在任何测试故障时失败。

那里去了。这就像那样容易。如果要运行默认值以外的一些命令,则可以覆盖脚本travis ci标记和调用matlab -batch mycustomscript.在哪里mycustomscript.签入到项目中,可以自定义以运行更适合您的自定义CI流程。

最后的礼物?对于这些CI服务的批处理模式,MATLAB的这种用法是免费的。我们喜欢开源!......我们很高兴看到这些服务如何有助于提高世界各地Matlab项目的质量。我想不出一种加快工程和科学步伐的更好方式。我们很乐意听到您如何使用这些服务,或者也许您的计划。节日快乐!




发布与MATLAB®R2020b

|

评论

要发表评论,请点击在这里登录您的MathWorks帐户或创建新的。