'git branch --contains' на CircleCI показывает ветку, которая не имеет фиксации - PullRequest
0 голосов
/ 18 марта 2020

Я хочу запустить сборку, только если тег ссылается на коммит, содержащийся в master.

Для этой цели у меня есть шаг run, который выполняет:

if ! git branch --contains $CIRCLE_TAG | grep master > /dev/null; then exit 1; fi

Я делаю это, потому что невозможно заставить его работать только с фильтрами CircleCI (ветви и теги).

Проблема:

Локально работает нормально для тега, которого нет в master, но когда я запускаю его в CircleCI, команда contains выводит список master.

Я зарегистрировал результат git branch --contains $CIRCLE_TAG в CircleCI и распечатал его это:

* (HEAD detached at 0.5.5)
master

Я запустил конвейер у macos и docker:stable-git исполнителей, и результаты были одинаковыми.

Может ли это быть ошибкой или я что-то упустил?

config.yml Я использую для тестов:

version: 2.1

add_filters: &add_filters
  filters:
    branches:
      ignore: /.*/
    tags:
      only: /.*/

jobs:
  check_branch:
    docker:
      - image: docker:stable-git
    environment:
      TERM: xterm-256color
    steps:
      - checkout
      - run: |
          if ! git branch --contains $CIRCLE_TAG | grep master > /dev/null; then exit 1; fi

workflows:
  version: 2.1
  release_pod:
    jobs:
      - check_branch:
          <<: *add_filters
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...