托马索广场生物照片

托马索广场

编码员、摄影师、登山运动员、水手、克拉夫马加练习者和蒙古拉力赛老将

推特 脸谱网 LinkedIn链接 github 栈溢出

概述

危险是一个红宝石您可以在持续集成过程中使用它来自动化代码审查。

危险可以在打开拉动请求中自动通过代码并检查它是否尊重您的团队和您制定的规则。

当与某些源代码管理平台结合使用时,Danger甚至可以直接对开放式拉取请求进行评论。

危险可能:

  • 跑步:Circle、Travis、Jenkins、Buildkite、BuddyBuild、Semaphore、TeamCity、Xcode Bots、Drone、Surf和Bitrise。
  • 聊回来:GitHub、GitLab和Bitbucket。
  • 处理差异源:Git。

首先,什么是实施代码风格和其他的好工具Haskell代码库中的条件?

你猜对了,hlint公司.简介危险处理.

以下是危险控制的示例hlintBot和对拉请求的评论.

危险品-hlint

危险品-hlint是危险和红宝石的插件。的核心危险品-hlint皮棉调用的函数hlint公司使用一组参数。

让我们看看如何使用它。

设置危险

为你的项目设置危险是很容易的。这里有一个完整指南要不是因为不耐烦归根结底就是安装捆扎机并执行以下操作:

$cd我的项目$bundle初始化$echo“宝石'危险'”>>宝石文件$echo“gem'danger-hlint'”>>宝石文件$bundle安装

现在您应该在磁盘上有两个新文件,宝石文件宝石文件.lock.将这些添加到版本控制并提交。

此时,您可以运行任一运行捆绑执行危险初始化并遵循屏幕上的说明或继续阅读此博客文章。

什么捆绑执行危险初始化dos是:

  • 创建一个Dangerfile公司-我们会的手动创建一个
  • 提示您为Danger设置一个Github帐户,以便对您的PR进行评论-我们不需要这个,因为我们将使用hlint机器人
  • 指导您如何设置CI-我们将拭目以待如何设置Travis

我将指导您使用进行快速设置github特拉维斯CI。阅读本指南可能会帮助您比设置东西要长,因为这很容易。

请参阅完整指南用于不同的设置或遇到麻烦。

Dangerfile公司

Dangerfile是您指定要应用于代码的规则的地方,即我们将在哪里使用危险品-hlint。Dangerfile是一个ruby脚本,我们将使用中的函数编写该脚本危险品-hlint危险宝石本身。

创建一个名为Dangerfile公司在项目的根目录中,然后粘贴到下列的

#通过当前差异中的更改获取所有受影响的文件
受影响的文件 = 吉特.添加的文件 + 吉特.修改的文件

#将文件限制为.hs文件
haskell_文件 = 受影响的文件.选择 { |文件| 文件.以结尾?('.hs') }

#对文件运行hlint并在PR中内联注释
hlint公司.皮棉 haskell_文件 内联模式(_M):真的

如果希望向hlint传递更多参数,只需将它们添加为关键字参数即可像这样

#使用我的特殊提示文件对文件运行hlint,并在PR中内联注释
hlint公司.皮棉 haskell_文件 内联模式(_M):真的 提示:“/path/to/MyHlinHintfile.yaml”

如果感觉不到,所有参数都应该透明地传递给hlint自由到提交拉入请求来解决这个问题。

此时,您可以通过以下方式在本地运行Danger这些说明.

特拉维斯

现在您已经在本地设置了Danger,下一步是运行它在你的CI上。我将在这里解释如何设置Travis来专门运行Danger用于Haskell项目。你可以找到一个完整的.travis.山药 在这里最后第节。

设置过程由两部分组成:

travis.山药

首先,在Travis上安装步骤之前,我们必须设置红宝石.

这是通过使用RVM公司Travis的图片上有对于C类项目。添加到您的.travis.山药文件a安装之前以下内容

安装之前:
#更新ruby
- rvm使用2.1--install--binary--fuzzy

接下来我们需要下载hlint。

这是一个耙子任务。你不必使用rake任务,任何其他方式都可以。请随意使用您自己的脚本下载并安装hlint。

将此另存为Rakefile文件在项目的顶层。将此文件添加到版本控制并提交。

现在,回到那时.travis.山药中的文件安装之前步,我们跑rake hlint:安装[2.0.9]在版本中安装hlint的任务2.0.9.

安装前:
#更新ruby
- rvm使用2.1--install--binary--fuzzy
#下载并安装hlint
- rake hlint:安装[2.0.9]

中的下一个安装要安装的步骤危险危险品-hlint特拉维斯。

我们在前面的宝石文件宝石文件.lock将其提交到我们项目存储库中的文件.然后我们就可以跑了捆绑安装--部署。我们想使用--部署标志,以便我们可以缓存供应商/捆绑bundler所在的目录安装依赖项。

安装:
  #运行bundler并在vendor/bundle中安装依赖项
  #从而可以对其进行高速缓存。
  - 捆绑安装--部署

中的下一个脚本我们想要运行Danger的步骤,所以我们只需添加捆绑执行危险

脚本:
  - 捆绑执行危险

最后我们要告诉Travis把供应商/捆绑目录,以便在下一次跑步捆绑安装--部署可能不起作用。

#缓存,这样下一次构建也会很快。
隐藏物:
  目录:
  - 供应商/捆绑

下面是一个示例如何完成期末考试.travis.山药文件看起来像Haskell项目,包括危险设置。

在下一节中,我们将看到如何允许Danger对拉动请求进行评论从现在开始,我们的项目将开放。

允许Danger对拉入请求进行评论

Danger可以通过以下方式控制账户,在GitHub上评论拉入请求个人访问令牌。而不是使用您可以使用隐名模式在GitHub上创建另一个帐户按照上的建议使用web浏览器危险.系统.

或者我已经创建了@hlint机器人.感觉在接下来的步骤中可以自由使用此帐户,访问令牌可以控制@hlint机器人

获得访问令牌后,请在以下位置打开项目的Travis控制面板:travis-ci.org/{you}/{project}/settings.

环境变量部分添加名为危险_ GITHUB_API_TOKEN并为其分配访问令牌的值。请参阅这个关于危险的CI/Token设置部分。系统如果这些说明不清楚。

此时,您已经准备好了,Danger应该可以对您的打开进行评论拉入请求。下面是一个示例hlintBot对拉取请求进行评论.

结论-TL;博士

我们已经了解了如何设置一个系统来自动评论推送请求鼓励贡献者遵守hlint规则。

重新包装,以运行危险品-hlint您需要:

  • 在项目的顶层
    • A类宝石文件&宝石文件.lock需要危险危险品-hlint
    • A类Dangerfile公司你打电话的地方hlint.lint(中文)
    • A类.travis.山药下载位置hlint公司然后跑捆绑执行危险
  • 在travis-ci.org上
    • 添加危险_ GITHUB_API_TOKEN包含GitHub访问的环境变量代币

Haskelling与Danger&hlint一起快乐。