Разница между $ TRAVIS_EVENT_TYPE! = 'Pull_request' и $ TRAVIS_PULL_REQUEST_SLUG! = $ TRAVIS_REPO_SLUG - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь настроить Chromatic в Travis.

Я видел Хроматический документ рекомендует использовать этот скрипт в Travis

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

с объяснением

Travis предлагает два типа сборок для коммитов по запросу pull: так называемые pr и push сборки.Имеет смысл запускать Chromatic только один раз для каждого PR, поэтому мы предлагаем отключить Chromatic для PR-сборок для внутренних PR (т. Е. PR, которые не из форков).Убедитесь, что у вас включены принудительные сборки, и добавьте следующий код: [[THE CODE ABOVE]]

Для внешних PR (PR от форков вашего репо) приведенный выше код гарантирует, что Chromatic делаетзапускать на сборке pr, потому что в таких случаях Travis не запускает push-сборки.

Примечание. Мы рекомендуем запускать Chromatic на сборках push, поскольку pr-сборки не всегда могут запускаться и выпадать из нормального git-предка.Например, если вы измените базовую ветвь PR, вы можете обнаружить, что вам необходимо повторно одобрить изменения, поскольку некоторые истории могут быть потеряны.

Однако Chromatic работает со сборками Travis pr!

Затем я читаю документ Тревиса о TRAVIS_PULL_REQUEST_SLUG и TRAVIS_REPO_SLUG.

TRAVIS_PULL_REQUEST_SLUG:

  • , еслитекущим заданием является запрос на извлечение, слаг (в форме имя-владельца / имя-репозитория) хранилища, из которого был создан PR.

  • , если текущее задание является принудительной сборкой, эта переменнаяпусто ("").

TRAVIS_REPO_SLUG:

  • Пуля (в форме: owner_name / repo_name) строящегося в настоящее время хранилища.

Итак, я понимаю, что когда $TRAVIS_PULL_REQUEST_SLUG != $TRAVIS_REPO_SLUG, это push build, тогда зачем ему все еще нужно $TRAVIS_EVENT_TYPE != 'pull_request'?

Есть ли разница междуих?

1 Ответ

1 голос
/ 19 сентября 2019

Gert из Chroma здесь.

Мы рекомендуем запускать chromatic только тогда, когда сборка не происходит из запроса на извлечение (т. Е. Принудительной сборки), ИЛИ когда это сборка с запросом извлечения, происходящая из вилки,в этом случае PR-слаг отличается от репо-слага.

На основе указанных документов Travis, в случае принудительной сборки, TRAVIS_PULL_REQUEST_SLUG пусто, в случае PR-сборки с вилки, она будет ссылаться на владельца репо вилки.В любом случае это будет отличаться от TRAVIS_REPO_SLUG.Таким образом, вы правы, что левая часть этого условия является излишней.Не стесняйтесь опускать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...