Если файл не существует, то да, тест [[ -e "..." ]]
вернет 1 (потому что он не прошел).
Если состояние выхода на 1
нарушает ваш конвейер, вы можете переписать командную строку, выполнив что-то вроде этого:
[[ ! -e "stacks/docker-compose-${CIRCLE_BRANC}.yml" ]]
|| { set -a && source /tmp/workspace/${CIRCLE_BRANCH}.env && docker-compose -f /tmp/workspace/docker-stack.yml -f "stacks/docker-compose-${CIRCLE_BRANC}.yml" config > /tmp/workspace/docker-stack.yml; }
Здесь логика инвертирована из вашего исходного сценария:
[[ ! -e "stacks/docker-compose-${CIRCLE_BRANC}.yml" ]]
: если ваш файл не существует , мы завершаем работу с кодом выхода 0
- иначе мы выполняем команду внутри следующего блока (код выхода 0, если блок успешен, иначе 1)