terminus-plugin-project/terminus-dibs-plugin

Dibs - 一个允许您在Pantheon环境中提出要求的Terminus插件。

1.0.0 2019-02-28 02:21 UTC

This package is auto-updated.

Last update: 2024-09-28 14:28:28 UTC


README

Dibs是一个用于对站点环境提出要求的Terminus插件。它对在有限数量的多开发环境中协作的团队或构建自动化和持续集成环境很有用。

安装

安装此插件最简单的方法是通过Composer!运行以下命令来安装此插件

composer create-project --stability=beta -d ~/.terminus/plugins/ terminus-plugin-project/terminus-dibs-plugin:~1

如果您不想使用Composer,请将此存储库的内容放置在~/.terminus/plugins/dibs或您的$TERMINUS_PLUGINS_DIR位置。您可以通过使用git克隆此存储库或从GitHub上的发布中解压缩tarball来这样做。

通过运行terminus help env:dibs来验证安装是否成功

用法

要求特定环境

要要求名为your-site的站点的dev环境,请运行

terminus env:dibs your-site.dev "Need the dev environment for a thing."

如果调用成功,您应该会看到以下类似的消息

[notice] Called dibs on the dev environment.

...以及关于环境的详细信息。

请注意,在提出要求时必须留下备注。如果您或您的团队成员再次尝试在dev上提出要求,您将看到包含最初用于提出要求的消息的错误。务必为您的同事留下有意义的备注!

取消要求环境

一旦您完成对环境的使用,您可以通过运行以下命令来取消要求

terminus env:undibs your-site.env

如果调用成功,您应该会看到以下类似的消息

[notice] Undibs'd the dev environment.

...以及关于环境的详细信息。

之后,您或您的团队成员可以再次要求dev

要求任何可用环境

如果您对调用哪个环境不感兴趣,您可以运行以下命令,它不需要环境名称。Dibs将尝试找到一个尚未被调用的环境。

terminus site:dibs your-site "Testing some layout tweaks"

如果找到一个环境,您将看到与上面相同的成功消息,包括被要求的环境的名称。此外,还会返回有关被要求环境的详细信息。

如果所有环境都已有人使用,您将看到一个错误消息

[error] Unable to find an environment to dibs.

默认情况下,除了实时环境外,所有环境都可以被要求。

基于过滤器的环境要求

如果您想要求一个环境,但希望限制可用于要求的环境,您可以提供正则表达式模式作为过滤器来实现。

terminus site:dibs your-site "Experiments" '^((?!^(dev|test|live)$).)*$'

上述命令将对多开发环境提出要求,忽略devtestlive环境。

注意:在两种没有提供特定环境的情况下,只有那些完全启动的环境可以被要求。如果您需要要求正在启动的环境,请指定环境名称。

要求报告

如果您想查看环境和它们的请求状态概述,可以使用以下命令通过按环境进行拆分来获取

terminus site:dibs:report your-site

这样做,您将得到以下响应

 ------------- ---------------- ---------- ------------------------ --------------------------
  Environment   Status           By         At                       Message
 ------------- ---------------- ---------- ------------------------ --------------------------
  dev           Available
  test          Not Ready
  multidev-1    Already called   username   Thu Nov 3rd at 07:23pm   New feature for the boss
 ------------- ---------------- ---------- ------------------------ --------------------------

请注意,您也可以提供正则表达式过滤器来限制报告中返回的环境

terminus site:dibs:report your-site '^((?!^(dev|test|live)$).)*$'

您还可以使用标志--older-than来进一步筛选出在指定时间内(以秒为单位)已被要求的环境

terminus site:dibs:report your-site '^((?!^(dev|test|live)$).)*$' --older-than=1800

用例

此插件假定您已经在您的Pantheon站点上启动了持久或半持久的环境。它可以用于各种用例,包括人工和自动化。

穷人版多开发环境

假设你有一支由两人或更多人组成的团队,你正在为一个对多开发者不太友好的客户工作。如果你们中有两个人想在网站的同一区域尝试新的配置,你们怎么确定谁使用devtest呢?

这个插件可以帮助管理工作!

terminus env:dibs your-site.test "New features for the boss"

加快CI构建速度

假设你在CI服务器上运行自动化测试,该服务器会启动和销毁多开发环境,但数据库太大,创建站点需要很长时间

使用此插件加快你的构建速度!保留一些持久的CI环境,例如使用ci1ci2等命名规范。而不是启动/销毁环境,只需叫一声“ dibs”即可!

export PENV=`terminus site:dibs --field=id -- your-site "Using env for build." '^ci\d$'`

注意,你也可以指定多个字段(例如--fields=id,domain),而不是一个,或者如果需要,指定一个替代格式(例如--format=json)。有关更多信息,请运行:terminus help site:dibs

多开发环境管理

假设你有一个大型团队或你正在同时处理大量功能,但只有少数几个多开发环境。

使用此插件,确保大家不会互相干扰!保持你的多开发环境数量在最大容量,例如使用dev1dev2等命名规范。在开始工作于一个功能或它准备好进行质量保证之前,先对环境发出“ dibs”。

terminus site:dibs your-site "Feature name/number" '^dev\d+$'

内部机制

为了维护环境是否已被“ dibs”的状态,此插件将一个小JSON文件写入网站环境文件系统的一个公开可访问位置。如果你运行任何基于文件的流程操作(如从live克隆到你的“ dibs”环境),则“ dibs”状态将会丢失。

此插件足够智能,可以识别环境是否是从先前“ dibs”的环境创建的(例如,从一个环境到另一个环境的db/files的克隆),并且将允许目标站点被“ dibs”(例如,如果dev已经被“ dibs”,而你从dev启动了multidev-1,尽管从dev的“ dibs”JSON文件将存在于multidev-1上,此插件仍然允许你对multidev-1发出“ dibs”)。

注意事项

  • terminus 2.0.x兼容
    • Dibs的1.x版本与Terminus的1.x至2.0.0版本兼容。