当我试图通过Jenkins标记特定的构建时,会出现以下错误:
ERROR: Error tagging repo 'refs/remotes/origin/master' :
org.eclipse.jgit.api.errors.NoHeadException: Tag on repository without
HEAD currently not supported hudson.plugins.git.GitException:
org.eclipse.jgit.api.errors.NoHeadException: Tag on repository without
HEAD currently not supported at
org.jenkinsci.plugins.gitclient.JGitAPIImpl.tag(JGitAPIImpl.java:509)
at
hudson.plugins.git.GitTagAction$TagWorkerThread.perform(GitTagAction.java:199)
at hudson.model.TaskThread.run(TaskThread.java:129) Caused by:
org.eclipse.jgit.api.errors.NoHeadException: Tag on repository without
HEAD currently not supported at
org.eclipse.jgit.api.TagCommand.call(TagCommand.java:137) at
org.jenkinsci.plugins.gitclient.JGitAPIImpl.tag(JGitAPIImpl.java:507)
... 2 more Trying next branch Completed
当试图在工作区中标记它工作正常,HEAD实际上是附加的,git引用看起来很好,这可能是一个问题,当詹金斯试图标记它在错误的工作目录中寻找?
有没有办法用它试图标记的方式提取更多详细的日志?
仅供参考-使用Jenkins 2.81和swarm Linux代理,最新的Git插件。
考虑抛出异常的实际代码:
try (RevWalk revWalk = new RevWalk(repo)) {
// if no id is set, we should attempt to use HEAD
if (id == null) {
ObjectId objectId = repo.resolve(Constants.HEAD + "^{commit}"); //$NON-NLS-1$
if (objectId == null)
throw new NoHeadException(
JGitText.get().tagOnRepoWithoutHEADCurrentlyNotSupported);
仔细检查你的配置:参见“Jenkins Git插件分离头”。你需要确保詹金斯真的结帐了
例如,尝试添加一个包含git status
的简单测试步骤,以验证这一点。
问题内容: 使用git“标记”构建时,jenkins上有一个选项。 这是做什么用的,我该如何使用?我假设我可以在该版本中标记构建,但是我正在努力寻找如何推送该标记的方法-除非我可以按下该标签,否则它不会那么有用。 问题答案: 您并不总是希望推送 所有 构建标记,因为根据构建周期的不同,可能会有很多构建标记。 但是,任何任务调度程序(例如Jenkins)都将标记构建,以防您想返回到特定代码并对其进行
Jenkins将良好的构建标记为失败,因为某些单元测试失败。如果我在没有单元测试的情况下运行构建,我将获得构建成功状态。如何配置Jenkins来执行以下操作:
我有一个需求,根据开发人员的兴趣,他可能想选择从主分支或标记构建。 我能够使用Git参数插件从标记构建。从git参数插件中,当我选择标记或分支时,我可以看到我的标记和分支。但是当我选择一个要构建的分支时,我会得到下面的git错误。 +refs/tags/:refs/remotes/origin/tags/+refs/heads/master:refs/remotes/origin/master 0
----maven-enforcer-plugin:1.0.1:enforce(default)@cli---添加ignore:org.eclipse.jetty.spdy.* ----maven-enforcer-plugin:1.0.1:enforce(enforce-bang-dependencies)@cli-- ---build-helper-maven-plugin:1.7:times
问题内容: 由于某些单元测试失败,Jenkins将良好的构建标记为失败。如果我在不进行单元测试的情况下运行构建,则将获得“构建成功”状态。我如何配置Jenkins来执行以下操作: 构建成功+单元测试失败->发送自定义内容的电子邮件通知,例如构建成功+多少单元测试失败。 构建成功+单元测试成功->发送电子邮件通知,说明构建和单元测试均成功 构建失败->不要运行单元测试->在构建失败时发送电子邮件通知
问题内容: 我在寻找答案时发现的恐怖故事… 好的,我有一个.sh脚本,它几乎完成了詹金斯应该做的所有事情: 从SVN检出源 建立项目 部署项目 自己清洗 因此,在Jenkins中,我只需要通过在ExecuteShell命令中运行脚本来“构建”项目。脚本已运行(下载了源代码,项目正在构建/部署中),但随后将构建标记为失败:生成步骤’Executeshell’将构建标记为失败,即使脚本已成功运行!我尝