Вы можете добавлять условия к своим шагам и просто пропускать ненужные части, см. jobs.<id>.steps.if
. Что касается что проверять, то контекст github
- это кладезь различных данных, связанных с текущим рабочим процессом. Например,
github.event_name string The name of the event that triggered the workflow run.
github.ref string The branch or tag ref that triggered the workflow run.
github.head_ref string The head_ref or source branch of the pull request in a workflow run.
и т. Д.
Обратите внимание, что части , упомянутые в документации , являются лишь верхушкой айсберга; github.event
содержит стену полезного. Лучше всего взглянуть в какой-нибудь рабочий процесс тестирования и посмотреть, что дает каждое событие.
Примерно так должно работать:
- name: On any event (pull-request, push on any branches)
uses: some/action
- name: Only when master is pushed
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
uses: some/action
- name: Only when a tag is pushed
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
uses: some/action