如何使用 gitversion Docker 显示变量

How to showvariable with gitversion Docker

我可以成功获取完整的 json 字符串:

docker run --rm -v `pwd`:`pwd` gittools/gitversion-dotnetcore:linux-4.0.0 `pwd` -output json

输出如下:

{
  "Major":0,
  "Minor":1,
  "Patch":0,
  "SemVer":"0.1.0-dev-2.1",
.
.
.
  "CommitsSinceVersionSource":20,
  "CommitsSinceVersionSourcePadded":"0020",
  "CommitDate":"2020-05-28"
}

因为我只对 SemVer 变量感兴趣,所以我尝试将 -showvariable FullSemVer 与:

一起使用
docker run --rm -v `pwd`:`pwd` gittools/gitversion-dotnetcore:linux-4.0.0 `pwd` -output json -showvariable FullSemVer

但它失败了,并出现了一个相当长且令人讨厌的错误日志。

INFO [05/28/20 18:23:12:10] End: Loading version variables from disk cache (Took: 76.31ms)
ERROR [05/28/20 18:23:12:13] An unexpected error occurred:
System.NotImplementedException: The method or operation is not implemented.

我想知道是否有办法在 gitversion Docker 容器中使用 -showvariable 标志?

我认为问题出在传递给 GitVersion 的路径参数上。 pwd 将为您提供主机上的工作目录,而不是容器内的工作目录。不幸的是,GitVersion 不知道它在容器中执行的事实,因此需要为它提供卷目录 /repo 作为计算版本号的路径。这是我们应该考虑在版本 6 中更改的内容。

我也不记得 -showvariable 是什么时候实施的,所以为了安全起见,您应该尝试使用 newer version of our Docker containers。我还可以推荐使用 alpine 容器,因为它是我们提供的最小容器(仅 83.9 MB)。这有效:

docker run \
    --rm \
    --volume "$(pwd):/repo" \
    gittools/gitversion:5.3.4-linux-alpine.3.10-x64-netcoreapp3.1 \
    /repo \
    -output json \
    -showvariable FullSemVer