Auto: Релизы создаются даже при отсутствии лейбла без релиза

Созданный на 14 янв. 2019  ·  11Комментарии  ·  Источник: intuit/auto

Опишите ошибку

В одном из наших репозиториев мы наблюдаем согласованные развертывания, когда не ожидаем, что развертывания не произойдет. Этот отток, в частности, происходит, когда @renovatebot делает

Вот пример PR, где присутствует ярлык «no-release» ( Version: Trivial в нашем случае), но релиз все еще происходит. Вот результаты CI данного слияния.

@hipstersmoothie Я

Воспроизводить

Я не совсем понял, что здесь общего. Это единственное место в нашей организации, где @renovatebot автоматически объединяет обновления кода, чтобы это могло быть связано с этим.

Ожидаемое поведение

Никакой релиз не должен запускаться.

Самый полезный комментарий

@zephraph это должно быть исправлено в v2.5.6 . Сообщите мне, если у вас все еще есть проблемы!

Все 11 Комментарий

Был еще один экземпляр в другом репо. https://github.com/artsy/palette/compare/v2.25.10...v2.25.11. Это тоже было автоматически объединено, но вместо @renovatebot было опасно. Может так боты сливают PR?

возможно. метки пропуска релиза требуют, чтобы на головке была соответствующая метка.

Вероятно, он должен искать последний PR, а не последнюю фиксацию.

Хммм ... да. Итак, когда я создавал это, я смотрел между хэшем заголовка и хешем последней версии и использовал это, чтобы выяснить, каковы были PR.

https://github.com/artsy/reaction/pull/1407/files#diff -ff397bdd24eed50e2a2cade2792a9d80R100

@zephraph Просто чтобы прояснить, происходит ли такая ситуация?

gitlog:

  1. Некоторые фиксируют бота или человека, созданного после вашего слияния
  2. коммит с PR с меткой skip-release

результат:

auto не skip-release потому что коммит 2 не находится в верхней части gitloh

После слияния не было зафиксировано ни одного коммита. Вроде бы само слияние. Когда бот объединяется (я думаю, что это так, но это могло быть совпадением) PR, то релиз происходит, даже если присутствует метка skipReleaseLabels . Если нужно, я могу найти больше примеров.

Вот последний пример (аналогичный приведенному выше).

  1. https://github.com/artsy/renovate-config/pull/164 был создан Renovate
  2. Renovate назначил Version: Trivial PR (который находится в skipReleaseLabels )
  3. Renovate автоматически объединяет PR
  4. Новый релиз сокращен, несмотря на присутствие лейбла skipReleaseLabels

Это слияние PR не имеет номера PR в теме фиксации

screen shot 2019-01-17 at 2 53 01 pm

Все, что работает, имеют PR-номер

screen shot 2019-01-17 at 2 54 47 pm

auto полагается на этот номер в сообщении фиксации, чтобы получить PR-номер:

объединить:
https://github.com/intuit/auto-release/blob/5cbccf46a9b49b12210325e7332d9f5c26b44ed1/src/log-parse.ts#L73

давить:
https://github.com/intuit/auto-release/blob/5cbccf46a9b49b12210325e7332d9f5c26b44ed1/src/log-parse.ts#L94

Так что, похоже, что-то не так с объединением этих PR. Это происходит перебазирование?

нам нужна функция, которая возвращает pr, связанный с SHA, но у меня проблемы с поиском подходящего метода octokit

хм, просто пошел по пути попытки сопоставить фиксацию в мастере с фиксацией в PR, но, похоже, у них разные SHA.

screen shot 2019-01-18 at 12 28 05 am

screen shot 2019-01-18 at 12 28 48 am

Это очень обидно. Теперь я понятия не имею, как мы можем сопоставить эти коммиты с их PR.

merge_commit_sha на помощь

@zephraph это должно быть исправлено в v2.5.6 . Сообщите мне, если у вас все еще есть проблемы!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги