Почему событие "release" также генерирует событие "pu sh"? - PullRequest
2 голосов
/ 25 января 2020

Я прочитал документацию Github Actions и не могу понять, почему рабочий процесс GitHub Action запускается с почти одновременными событиями push и release, когда я Publi sh новый выпуск. Другими словами, мой файл yaml рабочего процесса начинается следующим образом, определяя, что он должен запускаться как для событий pu sh, так и для событий release:

name: Release Actions

on:
  push:
    paths:
    - '**.csproj'
    - '**.cs'
    - '**.css'
    - '**.cshtml'
    - '**.dll'
    - '**.js'
    - '**.sln'
    - '**.yml'
  release:
    types: [published, prereleased]

И когда я публикую sh новый релиз (тег), Я ожидал бы, что это выполнится однажды. И все же я вижу, что два события срабатывают почти одновременно (~ 5-10 сек c друг от друга):

enter image description here

Теперь, событие release запускает push для моего репо, но единственный файл, который обновляется, это мой package.json файл. И определение paths для события push делает не список **. json одним из путей, поэтому я не ожидаю, что событие pu sh вызовет его.

Итак, что может объяснить второе происходящее событие, push?

1 Ответ

1 голос
/ 25 января 2020

Событие pu sh - это не коммит, являющийся pu sh для ветки, это тег, помещаемый в refs/tags/<tag>. Предполагается, что при создании релиза генерируются события release и push.

Если вы не хотите, чтобы рабочий процесс on: push вызывал теги, вы можете добавить фильтр branches, который вызовет помечать события, которые нужно игнорировать, как задокументировано здесь .

name: Release Actions

on:
  push:
    paths:
    - '**.csproj'
    - '**.cs'
    - '**.css'
    - '**.cshtml'
    - '**.dll'
    - '**.js'
    - '**.sln'
    - '**.yml'
    branches:
    - '**'
  release:
    types: [published, prereleased]
...