【发布时间】:2020-04-15 11:55:41
【问题描述】:
对于this repro repo
在 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 运行返回相同的非零值。
每当提供 gitrevision range 参数时,似乎 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"
【问题讨论】:
-
我从未使用或设置过 CircleCI,但
git-shallow-clone听起来像个问题:浅克隆是故意忽略大多数提交的克隆。你不能计算你没有的提交。要计算提交,请不要使用浅克隆。 -
@torek 我已更改 circleci 配置以使用正常的 circleci 结帐并更新帖子以反映这一点。我仍然得到与以前相同的结果
-
好的 - 现在问题可能已经归结为 CircleCI 本身特有的问题......我不知道没有使用它! :-)
标签: git circleci-2.0