在 js 存储库上 github 中的构建状态是什么意思

What does build status in github mean on js repos

本文关键字:构建 状态 是什么 意思 github js 存储      更新时间:2023-09-26

我经常看到带有构建状态通知的 github js 存储库(就像这里一样)。如果它是一个像javac++这样的编译项目是有意义的,但它是javascript,可能发生的更糟糕的事情是抛出的异常。

在解释型语言上下文中,生成状态是什么意思?

JavaScript 可以在服务器(nodejs)或浏览器上使用。无论哪种方式,一般而言,构建状态都指示您的软件(在本例中为 javascript)是否已通过软件按预期工作所需的构建测试。

TravisCI是处理运行您作为开发人员预先设置的测试的软件:http://about.travis-ci.org/docs/user/getting-started/。TravisCI被免费集成到GitHub中...这是一项免费服务。

它的工作方式是你在存储库的根目录中设置一个名为 .travis.yml 的配置文件,TravisCI 将"构建"你的项目 - 这意味着它将运行你预先设置的测试......例如单元测试、检查代码是否适用于最新的 NodeJS 版本、jQuery 版本、检查依赖项以及对项目很重要的其他任务。

这些测试/检查可以并且将在每次新推送到存储库时运行,确保对代码的新更改不会破坏项目的功能。当多个开发人员为一个项目编写代码时,这种自动化测试非常有用。将 TravisCI 视为一个项目警察,当您的代码未通过所需的测试并且没有所需的依赖项时,它会显式失败您的项目。虽然也可能有其他原因。

似乎(至少对我来说)TravisCI用于JS社区的大型项目,但这并不意味着它也不能用于较小的项目。就我个人而言,我从未使用过这项服务 - 我只是意识到它,并在我需要它时睁大眼睛。希望这能为您澄清一点。

更新:当然,这也是一个考验。它使用提供的两个 NodeJS 版本(0.8 和 0.6)测试项目。

language: node_js
node_js:
  - 0.8
  - 0.6

直接引用自 TravisCI 文档:

"节点.js项目指定需要测试的版本 使用node_js键"。

您可以在此处找到特定的 NodeJS 详细信息:http://about.travis-ci.org/docs/user/languages/javascript-with-nodejs/

一般配置详细信息如下: http://about.travis-ci.org/docs/user/build-configuration/#.travis.yml-file%3A-what-it-is-and-how-it-is-used

如果开发人员愿意,他们可以添加更多会影响构建状态的测试或事情。这里有很多例子:http://about.travis-ci.org/docs/user/build-configuration/。

例如,可以运行Shell脚本,这些脚本可能通过JSLint,JSHint,Google Closure Compiler或其他任何东西运行JS文件。您还可以将配置属性添加到此.travis.yml文件,该文件将在每次构建时向您发送电子邮件,或连接到他们的数据库之一 - mysql,mongodb等。

我认为了解更多信息的一个好方法是阅读文档。也许谷歌也可以找到其他人关于这个主题的文章。不过,最好的学习方法是把袖子卷起来,试一试。

不过,老实说,这些事情中有一半也超出了我的头脑,而且我从未将其用于我的任何小屁股项目。希望现在更有意义。

更新 2:

项目不需要测试才能进行测试吗?

是的,确实如此,这就是重点。如果您按照文档中的指示创建一个帐户,我相信您会找到所有问题的答案。

注册 TravisCI 时,VM 将可用,并与 github 存储库连接/同步。如果在.yml文件中选择了 NodeJS 作为语言,则虚拟机将安装 NodeJS。

如果添加了值为 shell script (.sh)script: 键,则将执行此脚本。如果你知道如何在shell中开发,那么你就可以做各种各样的测试和惊人的事情。正如我所说,您可以通过Linter,验证器运行文件,也可以在无头浏览器(PhantomJS)中运行其他一些JS文件。在幻影中运行的 JS 文件本身可以是单元测试。这是它是如何完成的:http://about.travis-ci.org/docs/user/gui-and-headless-browsers/

有关单元测试的更多信息: http://about.travis-ci.org/docs/user/languages/javascript-with-nodejs/#Default-Test-Script - 只需阅读有关使用 Using Vows 的部分。

如果你想确切地了解 TravisCI 是如何完成所有这些事情的,那么学习 Ruby 将是很好的第一步。

任何项目都可以有一个构建阶段,即使这仅仅意味着您将 JavaScript 压缩到缩小版本或构建文档或类似的此类任务。大多数情况下,对于"无构建"项目,这意味着一套测试会自动针对最新版本运行。