Проблемы с запуском действий Github в очереди
У меня есть случай, когда два действия GitHub выполняются одновременно (как и предполагалось) с нажатием на главную ветку. Проблема в том, что я хочу, чтобы он запускался в очереди, и мне не удалось найти никакой полезной документации по этому поводу. В моем случае мне нужно, чтобы действие выполнялось только после того, как выполнение того же действия завершается, поскольку мое развертывание прерывается, если оно все еще выполняет последнее. Мне пришлось бы иметь дело со сторонним клиентом, который я не хотел в первую очередь, чтобы заставить его ждать вместо прямого развертывания, я бы очень предпочел делать это на всем действии.
2 ответа
Я вижу здесь следующие решения:
- Вы можете "засыпать" зависимый рабочий процесс, чтобы имитировать ожидание первого рабочего процесса. wait-action может вам в этом помочь.
- Вы можете попробовать запустить второе действие из первого действия (вместо того, чтобы запускать его при
push
).
Но все эти варианты больше похожи на хаки. Действия GitHub предназначены для параллельной работы, и если вы хотите запускать действия в определенном порядке, вам следует подумать о том, чтобы использовать вместо этого задания и использоватьneeds
свойство устанавливать между ними зависимость. Пример:
jobs:
job1:
name: Run 1st job
job2:
name: Run 2nd job
needs: job1
Документация - потребности
Вы можете использовать параллелизм .
name: CI
on:
pull_request:
branches: [main]
concurrency: ci
jobs: