$ TRAVIS_EVENT_TYPE!='pull_request'和$ TRAVIS_PULL_REQUEST_SLUG!= $ TRAVIS_REPO_SLUG之间的差异

时间:2019-09-19 19:09:02

标签: travis-ci chromatic

我正在尝试在Travis中设置色度。

我看到Chromatic document建议在Travis中使用此脚本

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

有解释

  

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

     

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

     

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

     

Chromatic确实可以与Travis的公关作品一起使用!

然后,我读了关于TRAVIS_PULL_REQUEST_SLUGTRAVIS_REPO_SLUG的{​​{3}}。

  

TRAVIS_PULL_REQUEST_SLUG:

     
      
  • 如果当前作业是请求请求,则为子弹(格式为   PR源自的存储库的owner_name / repo_name。

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

  •   
     

TRAVIS_REPO_SLUG:

     
      
  • 当前正在构建的存储库的段(格式:owner_name / repo_name)。
  •   

所以我的理解是何时$TRAVIS_PULL_REQUEST_SLUG != $TRAVIS_REPO_SLUG,它是一个构建,那么为什么它仍需要$TRAVIS_EVENT_TYPE != 'pull_request'

它们之间有什么区别吗?

1 个答案:

答案 0 :(得分:1)

来自Chroma的专家。

我们建议仅在构建不是源自拉取请求(即,推入构建)时,或者当它是源自派生的拉取请求构建时,才运行彩色(在这种情况下,PR塞子与回购塞子不同) 。

基于引用的Travis文档,如果是推送构建,则TRAVIS_PULL_REQUEST_SLUG为空,如果是基于派生的PR构建,它将引用派生的回购所有者。无论哪种情况,它都将与TRAVIS_REPO_SLUG不同。因此,您可以肯定此条件的左侧是多余的。随时忽略它。