当前位置: 首页 > 知识库问答 >
问题:

如何配置Git post提交钩子

柴禄
2023-03-14

如何从Jenkins远程触发构建?
如何配置Git post提交钩子?

curl cmbuild.aln.com/jenkins/view/project name/job/myproject/buildwithparameters?Branch=feat-con

共有1个答案

濮阳研
2023-03-14

正如在“轮询必须死亡:从git钩子触发Jenkins构建”中提到的,您可以通知Jenkins一个新的提交:

使用最新的Git插件1.1.14(我现在刚刚发布),您现在可以通过执行以下命令来更轻松地完成这项工作:

curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>

这将扫描所有配置为签出指定URL的作业,如果它们也配置了轮询,它将立即触发轮询(如果发现了值得构建的更改,将依次触发构建)

http://jenkins:8080/git/notifyCommit?url=git@gitserver:tools/common.git

为了加强最后一点,ptha在评论中补充道:

这可能很明显,但我有以下问题:

curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>. 

url参数应该与Jenkins作业的存储库url完全匹配。
在复制示例时,我省略了协议,在我们的例子中是ssh://,它不起作用。

#!/bin/bash
/usr/bin/curl --user USERNAME:PASS -s \

http://jenkinsci/job/PROJECTNAME/build?token=1qaz2wsx

基本上,构建脚本可以:

  • 在第一次调用中放置“构建”注释(请参见Git notes)
  • 在随后的调用中,获取build候选分支的headgit notes'build'(git show refs/notes/build)引用的commit之间的提交列表:git diff--name-only SHA_build head.
  • 脚本可以解析该列表并决定是否需要继续构建。
  • 在任何情况下,创建/移动您的Git Notes'build'到head.

2016年5月:cwhsu在评论中指出以下可能的URL:

我想补充一点,只需编写少量shell脚本,就可以避免手动配置url,特别是在一个公共目录下有许多存储库的情况下。
例如,我使用这些参数展开来获取repo名称

repository=${PWD%/hooks}; 
repository=${repository##*/} 

然后像这样使用它:

curl $JENKINS_URL/git/notifyCommit?url=$GIT_URL/$repository
 类似资料:
  • 问题内容: 我在Linux上运行SVN。我希望一旦提交就运行自动部署。根据我的搜索,提交后svn似乎可以解决问题。但是我在SVN安装中找不到SVN提交后。所以我想知道这是否是单独安装?我可以下载并安装任何SVN提交后挂钩吗? 问题答案: 这不是单独的安装。在您的存储库目录中,有一个“挂钩”目录。您可以找到post-commit.tmpl,只需修改文件并将其重命名为可执行文件即可。

  • 如果我们在提交配置清单之前能够发现其中的语法错误将会是个好消息。 检查 Puppet 配置清单的语法可以使用 puppet parser validate 命令: # puppet parser validate /etc/puppet/manifests/site.pp err: Could not parse for environment production: Syntax error a

  • 问题内容: 我在JDBC中使用Spring,发现它是自动提交的。 如何配置以在spring-servlet.xml中将其关闭? 这是我当前的配置: 问题答案: 看来我的配置错过了这一行: 然后,在我的服务类中,我使用@Transactional批注。例如 如果addCompany_fail()中发生异常,则第一个addCompany()也将被回滚。 我阅读了这份文档,以了解在Spring中如何控制

  • 我在顶部有一个,并且肯定在上面使用了。但是,这些似乎是针对没有这样的文件或目录错误时的修复。我的错误只是表示,我无法找出原因。 钩子中的代码:

  • 我刚开始研究Git钩子,但我似乎无法让它们运行。 注意:这是在Windows7电脑上。

  • 如何使用Java配置实现这一点?