Я хочу запустить сборку, только если тег ссылается на коммит, содержащийся в 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