微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让 Gitversion docker 在 Travis-CI 中获取 FullSemVer

如何解决如何让 Gitversion docker 在 Travis-CI 中获取 FullSemVer

我试图在 FullSemVer 构建中从 GitVersion 上运行的 docker 获取 Travis-CI 值。我的代码.travis.yml 中看起来像这样:

services:
  - docker

script:
  - docker pull gittools/gitversion:5.3.5-linux-alpine.3.10-x64-netcoreapp3.1
  - export GitVersion_FullSemVer=$(docker run --rm -v "$(pwd):/repo" gittools/gitversion:5.3.5-linux-alpine.3.10-x64-netcoreapp3.1 /repo -output json -showvariable FullSemVer)

假设我可以像上面的脚本一样成功获取 FullSemver 值并分配给 GitVersion_FullSemVer。然后我可以:

before_deploy:
  - npm version $GitVersion_FullSemVer
deploy:
  # some deploy script

但实际上我得到了一些讨厌的价值:

$ echo $GitVersion_FullSemVer
INFO [04/16/21 4:16:37:44] Working directory: /repo INFO [04/16/21 4:16:37:47] Project root is: /repo/ INFO [04/16/21 4:16:37:47] DotGit directory is: /repo/.git INFO [04/16/21 4:16:37:50] Begin: Loading version variables from disk cache INFO [04/16/21 4:16:37:50] Cache file /repo/.git/gitversion_cache/FAA25BC3D78B47B1594DD5ADD897B1FB66D8C8D5.yml not found. INFO [04/16/21 4:16:37:50] End: Loading version variables from disk cache (Took: 1.31ms) INFO [04/16/21 4:16:37:58] Using latest commit on specified branch INFO [04/16/21 4:16:37:59] Begin: Getting branches containing the commit '8ca1e0b2c18ba8a5f64ce1455b11ff30c104555a'. INFO [04/16/21 4:16:37:59] Trying to find direct branches. INFO [04/16/21 4:16:37:59] No direct branches found,searching through all branches. INFO [04/16/21 4:16:37:59] Searching for commits reachable from 'hotfix/travis-ci-docker-gitversion'. INFO [04/16/21 4:16:37:61] End: Getting branches containing the commit '8ca1e0b2c18ba8a5f64ce1455b11ff30c104555a'. (Took: 23.18ms) ERROR [04/16/21 4:16:37:63] An unexpected error occurred: LibGit2Sharp.NotFoundException: object not found - no match for id (46b5a55fcfc6d1ff17ac25a9ac903af90a66d75d) at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result) at LibGit2Sharp.Core.Proxy.git_revwalk_next(RevWalkerHandle walker) at LibGit2Sharp.CommitLog.CommitEnumerator.MoveNext() at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source) at GitVersion.RepositoryMetadataProvider.GetBranchesContainingCommit(Commit commit,IEnumerable`1 branches,Boolean onlyTrackedBranches)+MoveNext() at GitVersion.Extensions.EnumerableExtensions.OnlyOrDefault[T](IEnumerable`1 source) in D:\a\GitVersion\GitVersion\src\GitVersionCore\Extensions\EnumerableExtensions.cs:line 20 at GitVersion.GitVersionContextFactory.Init(Branch currentBranch,String commitId,Boolean onlyTrackedBranches) in D:\a\GitVersion\GitVersion\src\GitVersionCore\Core\GitVersionContextFactory.cs:line 42 at GitVersion.GitVersionContextFactory.Create(GitVersionoptions gitVersionoptions) in D:\a\GitVersion\GitVersion\src\GitVersionCore\Core\GitVersionContextFactory.cs:line 28 at GitVersion.GitVersionCoreModule.<>c__displayClass0_0.<RegisterTypes>b__3() in D:\a\GitVersion\GitVersion\src\GitVersionCore\GitVersionCoreModule.cs:line 61 at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode) at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication,Boolean useDefaultConstructor) at System.Lazy`1.CreateValue() at System.Lazy`1.get_Value() at GitVersion.Versioncalculation.NextVersioncalculator.get_context() in D:\a\GitVersion\GitVersion\src\GitVersionCore\Versioncalculation\NextVersioncalculator.cs:line 17 at GitVersion.Versioncalculation.NextVersioncalculator.FindVersion() in D:\a\GitVersion\GitVersion\src\GitVersionCore\Versioncalculation\NextVersioncalculator.cs:line 32 at GitVersion.GitVersionTool.CalculateVersionVariables() in D:\a\GitVersion\GitVersion\src\GitVersionCore\Core\GitVersionTool.cs:line 68 at GitVersion.GitVersionExecutor.RunGitVersionTool(GitVersionoptions gitVersionoptions) in D:\a\GitVersion\GitVersion\src\GitVersionExe\GitVersionExecutor.cs:line 59 INFO [04/16/21 4:16:37:63] Attempting to show the current git graph (please include in issue): INFO [04/16/21 4:16:37:63] Showing max of 100 commits INFO [04/16/21 4:16:37:63] Could not execute 'git log' due to the following error: System.IO.FileNotFoundException: The executable file 'git' Could not be found. File name: 'git' ---> System.ComponentModel.Win32Exception (2): No such file or directory at System.Diagnostics.Process.ForkAndExecProcess(String filename,String[] argv,String[] envp,String cwd,Boolean redirectStdin,Boolean redirectStdout,Boolean redirectStderr,Boolean setCredentials,UInt32 userId,UInt32 groupId,UInt32[] groups,Int32& stdinFd,Int32& stdoutFd,Int32& stderrFd,Boolean usesTerminal,Boolean throwOnNoExec) at System.Diagnostics.Process.StartCore(processstartinfo startInfo) at System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(processstartinfo startInfo) at GitVersion.Helpers.ProcessHelper.Start(processstartinfo startInfo) in D:\a\GitVersion\GitVersion\src\GitVersionCore\Helpers\ProcessHelper.cs:line 26 at GitVersion.Helpers.ProcessHelper.Start(processstartinfo startInfo) in D:\a\GitVersion\GitVersion\src\GitVersionCore\Helpers\ProcessHelper.cs:line 42 at GitVersion.Helpers.ProcessHelper.Run(Action`1 output,Action`1 errorOutput,TextReader input,String exe,String args,String workingDirectory,keyvaluePair`2[] environmentalVariables) in D:\a\GitVersion\GitVersion\src\GitVersionCore\Helpers\ProcessHelper.cs:line 120 at GitVersion.Extensions.LibGitExtensions.DumpGraph(String workingDirectory,Action`1 writer,Nullable`1 maxCommits) in D:\a\GitVersion\GitVersion\src\GitVersionCore\Extensions\LibGitExtensions.cs:line 86

(抱歉,我不知道如何在 markdown 的代码块上进行换行,这里是实际的 Travis-CI link,参见第 282 行)。
如果我只是在 Travis-CI 上执行以下代码

docker run --rm -v "$(pwd):/repo" gittools/gitversion:5.3.5-linux-alpine.3.10-x64-netcoreapp3.1 /repo

它还会返回一些我不理解的长而令人讨厌的值字符串(链接 here 在第 287 行)。
请指教。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?