Как проверить, соответствует ли ветвь заголовка указанному шаблону c в запросе на извлечение ответвлений в действиях Github - PullRequest
0 голосов
/ 30 апреля 2020

Я хотел бы написать что-то подобное в моем действии рабочего процесса Github:

name: Deploy to branch with a specific pattern

on:
  pull_request:
    branches: master && contains(github.ref, 'myPattern') # The current head branch contains a specific word

Однако, это не сработало, и я не хочу использовать if после запуска задания для остановки это как следующий

name: Deploy to branch with a specific pattern

on:
  pull_request:
    branches: master

jobs:
  deployment:
    runs-on: ubuntu-latest
    if: contains(github.ref, 'myPattern')

Так есть идеи, как этого добиться?

1 Ответ

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

В документации это ясно сказано. https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpaths

При использовании событий pu sh и pull_request вы можете настроить рабочий процесс для запуска на указанных c ветвях или тегах. Для события pull_request оцениваются только ветви и теги на базе. Если вы определяете только теги или только ветви, рабочий процесс не будет запускаться для событий, влияющих на неопределенные Git ref.

Ключевые слова ветви, игнорировать ветви, теги и игнорировать теги принимают шаблоны глобуса, которые используют символы подстановки * и ** для соответствия нескольким именам ветвей или тегов. Для получения дополнительной информации см. " Шпаргалку шаблона фильтра ."

on:
  push:
    # Sequence of patterns matched against refs/heads
    branches:    
      - master         # Push events on master branch
      - 'mona/octocat' # Push events to branches matching refs/heads/mona/octocat
      - 'releases/**'  # Push events to branches matching refs/heads/releases/10
    # Sequence of patterns matched against refs/tags
    tags:        
      - v1             # Push events to v1 tag
      - v1.*           # Push events to v1.0, v1.1, and v1.9 tags
Filter pattern cheat sheet
You can use special characters in path, branch, and tag filters.

*: Matches zero or more characters, but does not match the / character. For example, Octo* matches Octocat.
**: Matches zero or more of any character.
?: Matches zero or one single character. For example, Octoc?t matches Octocat.
+: Matches one or more of the proceeding character.
[] Matches one character listed in the brackets or included in ranges. Ranges can only include a-z, A-Z, and 0-9. For example, the range[0-9a-f] matches any digits or lowercase letter. For example, [CB]at matches Cat or Bat and [1-2]00 matches 100 and 200.
!: At the start of a pattern makes it negate previous positive patterns. It has no special meaning if not the first character.
...