@ cypress/commit-message-install (中文(简体) )
国家防范机制安装一个取自最后承诺消息的名称包
安装
要求数 节点 6或以上版本.
npm install --save-dev @cypress/commit-message-install
yarn add -D @cypress/commit-message-install
或全球
npm i -g @cypress/commit-message-install
yarn global @cypress/commit-message-install
节点版本
我们试图使用与Cypress相同的最小版本的节点
使用
从承诺信息中安装国家防范机制软件包
想象一下,你有一个CI建筑 安装了国家预防机制的依赖, 但你也想要
通过创建承诺来覆盖一个或多个依赖和测试。 而不是改变
package.json 您可以使用嵌入的 JSON 块制作承诺信息描述
自定义安装。 然后根据承诺消息使用这个 CLI 工具来安装.
示例 CI 文件命令
- npm i -g @cypress/commit-message-install
- commit-message-install
如果承诺消息是这个
this will install package debug and chalk and while
installing them will set environment variable FOO to "bar".
The install will happen on all platforms
```json
{
"platform": "*",
"architecture": "x64",
"packages": "debug,chalk"
}
```
Happy installation
说明 platform 可能会是 * 或一个像 darwin (来自节点) os.platform())或多个平台列表,例如 darwin,linux。 。 。 . architecture 通常为 64 位 x64 以返回为单位 os.arch()。 。 。 .
具体承诺
您可以使用特定任务( 而非当前任务) 中的承诺信息安装
$ $(npm bin)/commit-message-install --sha f81a00
其它命令
您可以指定要运行的命令 如果任务消息没有 JSON 块。例如,你可以 安装默认依赖
$ $(npm bin)/commit-message-install --else "npm install foo-bar"
根据平台运行或跳过命令
如果承诺消息允许特定的平台,您可以运行任何命令,同时 从承诺消息中设置环境变量。 例如,如果th 将消息嵌入以下 JSON 块
{
"platform": "win32",
"env": {
"FOO": "bar"
}
}
和CI拥有命令 run-if echo Foo is \\$FOO,然后在 Windows CI 上打印
Foo is bar 在其他平台上,它会跳过这一步.
一般来说,如果你使用 commit-message-install 在CI上,那么你应该使用 run-if 也指挥!
例如,这里是安装默认依赖的 CircleCI 步骤,但随后运行
有条件的步骤
steps:
- checkout
- run: npm install
- run: $(npm bin)/commit-message-install
- run: $(npm bin)/run-if $(npm bin)/cypress version
- run: DEBUG=cypress:cli $(npm bin)/run-if $(npm bin)/cypress verify
设置 GitHub 承诺状态
通过 GitHub 同步通知其他项目非常有用.
$(npm bin)/set-status --label "context label" --state success --description "short message"
国家可以是"error","待决","失败"或"成功". --label 选项,如果没有设置,则将使用平台和软件包名称.
已发送消息
您可以使用脚本 has-message 检查JSON是否实施了信息封锁
$(npm bin)/has-message
$(npm bin)/has-message --sha f81a00
如果承诺体内有消息 脚本会用代码 0退出 否则它会以代码1退出.
见 承诺信息安装实例 复出为一譬. 这是CircleCI 停止,如果没有承诺消息 JSON
# install tool locally
- run: npm install @cypress/commit-message-install
- run: |
if ! $(npm bin)/has-message; then
echo Stopping early, no commit message
circleci-agent step halt
else
echo All good, found commit message JSON
fi
# install tool globally using Yarn
- run: yarn global @cypress/commit-message-install
- run: |
if ! has-message; then
echo Stopping early, no commit message
circleci-agent step halt
else
echo All good, found commit message JSON
fi
API 密码
从吉特获得Json
从当前 Git 消息文本中提取 JSON 块
const {getJsonFromGit} = require('@cypress/commit-message-install')
getJsonFromGit()
.then(json => {
// {platform: 'win32', packages: 'foo', branch: 'test-branch'}
})
如果信件中没有有效的 JSON 对象,则解决方式为 undefined。 。 。 .
获取InstallJson
您可以将 Json 对象组成好对象以包含在下划线中 json 块在正文中
使用提供的函数发送消息
const {getInstallJson} = require('@cypress/commit-message-install')
// package(s), env, platform, branch name (optional)
const json = getInstallJson('foo',
{foo: 42}, 'linux', 'test-branch', 'b7ccfd8')
// returns an object
// {
// platform: "linux",
// env: {foo: 42},
// packages: "foo",
// branch: "test-branch",
// commit: "b7ccfd8"
// }
您可以通过单个包名, 如 debug 或数个作为单一字符串
debug chalk 或清单 ['debug', 'chalk']
你可以通过平台 无论是个人 os.platform() 或一个"*"为所有人,甚至
多个平台如 win32,linux 或者说 linux|darwin。 。 。 .
npm 安装
在从承诺消息中获取 JSON 后, 您可以安装依赖性
const {getInstallJson, npmInstall} = require('@cypress/commit-message-install')
getInstallJson()
.then(npmInstall)
调试
- 运行此工具
DEBUG=commit-message-install环境变量集 - 强制读取本地文件发送的消息
--file <filename>选项
小印数
作者:格列布·巴赫穆托夫 <[email protected]> 2017年©
许可:麻省理工学院 - 做任何与代码有关的事情, 但如果它不起作用,不要责怪我.
支持: 如果您发现此模块有任何问题, 电子邮件 / 微博 / 未决问题 在基图布
MIT 许可证
版权(c)2017 Cypress.io
特此免费准许任何人 获取该软件和相关文件的副本 文件(“软件”),在软件中处理,不包含 限制,包括不限制使用权, 复制、修改、合并、出版、发行、分版和/或销售 软件的复制本,并允许向 为此提供了软件,但须符合下列条件: 条件:
上述版权通知和本许可通知应为: 列入软件的所有副本或大部分.
软件是提供的"是", 没有任何种类的恐惧, 或监禁,包括但不限制于 特别目的和目的的证明 无所不入。 绝对不能让警察或警察 B. 任何索赔、救济或其他负债的持有者, 条约、条约或其他条约行动 来源、来源或与溶剂或使用有关的 其他交易 在软件.