Для этого репо в задании сборки конвейера CircleCI git rev-list --count develop..$CIRCLE_SHA1
возвращает 0.
То же самое для git rev-list --count develop..HEAD
.
Также git rev-list develop..HEAD
ничего не делает
выход сборки
Все вышеприведенные команды git дают другой результат при локальном запуске. git rev-list --count HEAD
возвращает одинаковое ненулевое значение как для локальных, так и для CircleCI прогонов. Похоже, git rev-list
не срабатывает в CircleCI всякий раз, когда передается аргумент диапазон наблюдения . Как мне заставить git rev-list
работать с диапазоном gitrevision?
config.yml
version: 2.1
executors:
base:
docker:
- image: cimg/base:2020.01
jobs:
build:
executor: base
steps:
- checkout
- run:
name: Test git in bash script
command: chmod +x .circleci/circle_test.sh && .circleci/circle_test.sh
- run:
name: Test git in circleci command
environment:
PACKAGE_PATH: "./packages"
command: |
echo -e $(git rev-list -1 develop..$CIRCLE_SHA1 -- ${PACKAGE_PATH#./} | cat)
echo -e $(git rev-list -1 develop..$CIRCLE_SHA1 | cat)
echo -e $(git rev-list develop..$CIRCLE_SHA1 | cat)
git rev-list --count develop..$CIRCLE_SHA1
git rev-list --count HEAD
workflows:
version: 2
ci:
jobs:
- build
.circleci / circle_test. sh
PACKAGE_PATH="./packages"
LATEST_PACKAGE_COMMIT_SINCE_DEVELOP=$(git rev-list -1 develop..$CIRCLE_SHA1 -- ${PACKAGE_PATH#./})
LATEST_COMMIT_SINCE_DEVELOP=$(git rev-list -1 develop..$CIRCLE_SHA1)
COMMITS_SINCE_DEVELOP=$(git rev-list develop..$CIRCLE_SHA1)
COMMITS_COUNT_SINCE_DEVELOP=$(git rev-list --count develop..$CIRCLE_SHA1)
COMMITS_COUNT=$(git rev-list --count HEAD)
echo -e "\e[36m first changed commit in package since develop $LATEST_PACKAGE_COMMIT_SINCE_DEVELOP \e[0m"
echo -e "\e[36m first changed commit since develop $LATEST_COMMIT_SINCE_DEVELOP \e[0m"
echo -e "\e[36m commits since develop $COMMITS_SINCE_DEVELOP \e[0m"
echo -e "\e[36m commits count since develop $COMMITS_COUNT_SINCE_DEVELOP \e[0m"
echo -e "\e[36m commits count $COMMITS_COUNT \e[0m"
echo -e "\e[36m this commit $CIRCLE_SHA1 \e[0m"