Утвержденный ответ на PR-комментарий повторно развертывает рабочий процесс GitHub

#yaml #github-actions

Вопрос:

У меня есть рабочий процесс со следующим механизмом запуска:

 on:
  pull_request_review:
    types: [submitted]

jobs:
  job_one:
    if: github.event.review.state == 'approved'
 

Он работает точно так, как ожидалось, поэтому после утверждения PR рабочий процесс развертывается. Однако, если кто-либо оставляет комментарий в рамках утверждения и к этому комментарию добавляется ответ, рабочий процесс развертывается снова, но задание пропускается. Как я могу избежать развертывания рабочего процесса при добавлении ответа в PR-комментарий? Он перезаписывает активные проверки и визуально сбивает с толку, даже если рабочий процесс все еще выполняется.

Комментарии:

1. Вы можете проверить, есть ли еще одно событие внутри github.event.review переменной, когда в PR добавляется новый ответ. Если есть, вы можете добавить его в if условие задания, чтобы не запускать его, если это событие присутствует (используется amp;amp; ).

2. Это все равно приведет к развертыванию рабочего процесса? Поэтому прямо сейчас, когда добавляется комментарий, рабочий процесс развертывается, но все задания пропускаются, так как состояние проверки не «одобрено». Я хочу избежать развертывания всего рабочего процесса вместе. Я чувствую, что это причуда с триггером pull_request_review для отправленного типа. Честно говоря, это не так уж важно, но активные проверки перезаписываются в PR и показывают, что задания были пропущены, хотя на самом деле задание действительно выполнялось при отправке отзыва. Это просто сбивает с толку разработчика.

3. При такой реализации рабочий процесс будет выполняться, но задания будут пропущены, если условие не будет выполнено. Если вы не хотите, чтобы рабочий процесс выполнялся при выполнении условия, я бы предложил разделить логику на 2 рабочих процесса. Один для проверки выполнения условия, а другой для выполнения развертывания. Где первый рабочий процесс запускает второй рабочий процесс (например, через событие отправки) только в том случае, если условие выполнено, и ничего не делает иначе.