Trigger Github Действия только при объединении PR - PullRequest
1 голос
/ 16 марта 2020

У меня есть файл yaml для действий github:

name: Test deployment
on:
  pull_request:
    branches:
    - master

jobs:
  deploy:
    runs-on: ubuntu-18.04
    steps:
    - name: Random name
      run: date

Когда я поднимаю PR с ветки на ветку master, запускается Github Action. Итак, я обновил свой YAML до:

name: Test deployment
on:
  pull_request:
    types:
    - closed
    branches:
    - master

Теперь он срабатывает, когда я объединяю PR, а не поднимаю его. Но это также срабатывает, когда я закрываю PR, не сливая его.

Я не нашел ничего похожего на merged type в docs

Даже следующий синтаксис, который я пробовал, не дает работа как положено:

jobs:
  ...
    if: github.event_name == 'pull_request' && github.event.action == 'closed'

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

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Нет события слияния по запросу.

Самое близкое, что вы можете получить, это подписаться на событие push, поскольку объединенный PR всегда будет создавать событие pu sh для ветви, в которую он сливается.

Если вы заботитесь только о PR до master, тогда вы можете указать, что:

on:
  push:
    branches:
      - master

Другая вещь, которую вы можете сделать, это отфильтровать каждый шаг отдельно

      - name: Do something
        if: github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true
        run: ...
0 голосов
/ 17 марта 2020

Я сам не пробовал, но думаю, что это может сработать, так как я заметил, что это действие automerge, которое должно проверять, одобрен ли PR, прежде чем его объединить.

Попробуйте отреагировать на это действие

on
  pull_request_review:
    types:
      - submitted

затем получите из полезной нагрузки нечто, называемое review.state, оно должно иметь значение approved. Я видел это в действии здесь https://github.com/pascalgn/automerge-action/blob/135f0bdb927d9807b5446f7ca9ecc2c51de03c4a/lib/api.js#L123

...