$TRAVIS_EVENT_TYPE != 'pull_request' 和 $TRAVIS_PULL_REQUEST_SLUG != $TRAVIS_REPO_SLUG 之间的区别



我正在尝试在特拉维斯中设置Chromatic。

我看到Chromatic 文档建议在特拉维斯中使用此脚本

if [[ $TRAVIS_EVENT_TYPE != 'pull_request' || $TRAVIS_PULL_REQUEST_SLUG != $TRAVIS_REPO_SLUG ]];
then
npm run chromatic
fi

附有解释

Travis 为拉取请求的提交提供了两种类型的构建: 称为 PR 和推送构建。只运行一次 Chromatic 才有意义 每个 PR,因此我们建议在 PR 构建上禁用内部 Chromatic PR(即不是来自分叉的 PR(。你应该确保你 打开推送版本,并添加以下代码:[[上面的代码]]

对于外部 PR(来自存储库分支的 PR(,上面的代码将 确保 Chromatic 确实在 pr 构建上运行,因为 Travis 不会 在这种情况下触发推送构建。

注意:我们建议在推送构建上运行 Chromatic ,因为 pr 构建不能 总是跑出来,脱离正常的 git 血统。例如,如果 你更改了 PR 的基本分支,你可能会发现你需要 重新批准更改,因为某些历史记录可能会丢失。

然而,Chromatic 确实适用于特拉维斯公关构建!

然后我阅读了特拉维斯关于TRAVIS_PULL_REQUEST_SLUGTRAVIS_REPO_SLUG的文件。

TRAVIS_PULL_REQUEST_SLUG:

  • 如果当前作业是拉取请求,则 slug(在 PR 源自的存储库的 owner_name/repo_name(。

  • 如果当前作业是推送构建,则此变量为空 ("(。

TRAVIS_REPO_SLUG:

  • 当前正在构建的存储库的 slug(形式:owner_name/repo_name(。

所以我的理解是,当$TRAVIS_PULL_REQUEST_SLUG != $TRAVIS_REPO_SLUG时,它是一个推送构建,那么为什么还需要$TRAVIS_EVENT_TYPE != 'pull_request'呢?

它们之间有什么区别吗?

来自Chroma的Gert。

我们建议仅当构建不是源自拉取请求(即推送构建(时,或者当它是源自分叉的拉取请求构建时,我们建议运行 chromatic ,在这种情况下,PR slug 与存储库 slug 不同。

根据引用的 Travis 文档,如果是推送构建,TRAVIS_PULL_REQUEST_SLUG是空的,如果是从分叉进行的 PR 构建,它将引用分叉的存储库所有者。无论哪种情况,它都与TRAVIS_REPO_SLUG不同。所以你是对的,这个条件的左手边是多余的。随意省略它。

相关内容

  • 没有找到相关文章

最新更新