В проекте, над которым я работаю, есть файл рабочего процесса GitHub Actions, который выглядит следующим образом:
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "flom_v1_development" branch
push:
branches: ["development"]
pull_request:
branches: ["development"]
types:
- closed
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: self-hosted
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
with:
clean: false
AND SO ON...
Как видите, есть 2 события: запрос push и pull. На данный момент я обнаружил, что если я поставлю if перед «шагами», которые проверяют, объединился ли PR, это остановит двойной запуск. Но тогда и «тянуть» не получится! Я пробовал решить это следующим образом:
# Steps represent a sequence of tasks that will be executed as part of the job
if: github.event_name == 'push' || github.event.pull_request.merged == true
steps:
AND SO ON...
но он все равно работает дважды по PR. Любая помощь?
Арно, я хочу выполнить рабочий процесс ОДИН РАЗ, когда объединяю PR с веткой разработки. Прямо сейчас он выполняется дважды: сначала один раз, а затем снова через несколько секунд.
Хорошо, я ответил, дайте мне знать, если это поможет





Предполагая, что в ветке разработки не будет других push-событий, кроме момента объединения PR, вы можете просто сохранить событие push. Объединение PR автоматически запускает событие push, поэтому добавление pull_request запускает два рабочих процесса.
on:
# Triggers the workflow on push or pull request events but only for the "flom_v1_development" branch
push:
branches: ["development"]
Я не уверен, что понимаю, что вы пытаетесь сделать. Хотите ли вы выполнять рабочий процесс только тогда, когда PR объединяются в ветке разработки?