【问题标题】:Trigger Jenkins build based on a new GitHub release or commit to the master branch基于新的 GitHub 版本触发 Jenkins 构建或提交到主分支
【发布时间】:2017-06-20 01:33:02
【问题描述】:

我知道在 hereherehere 之前有人问过这个问题,但这些解决方案似乎都不适用于我的 Jenkins 设置,我不知道为什么。

我的目标是在对master 分支进行新提交或将任何标签(或在 GitHub 中的版本)添加到存储库时触发 Jenkins 构建。这是我当前的设置:

当我对master 分支进行新的提交时,会触发一个新的构建。但是当我添加一个新的 GitHub 版本时,什么都没有发生。

查看我的“Git Polling Log”显示以下输出:

Started on Jun 20, 2017 1:25:00 AM
Polling SCM changes on master
Using strategy: Default
[poll] Last Built Revision: Revision 035c0f46422616b1862376b79c43b2562dc66f93 (origin/master)
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repositories
 > git config remote.origin.url git@github.com:some-org/sample-app-frontend.git # timeout=10
Fetching upstream changes from git@github.com:some-org/sample-app-frontend.git
 > git --version # timeout=10
using GIT_SSH to set credentials GitHub SSH Key
 > git fetch --tags --progress git@github.com:some-org/sample-app-frontend.git +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/remotes/origin/tags/*
Polling for changes in
Seen branch in repository origin/master
Seen branch in repository origin/tags/stage-v0.0.1
Seen branch in repository origin/tags/stage-v0.0.2
Seen branch in repository origin/tags/stage-v0.0.3
Seen branch in repository origin/tags/v0.0.4
Seen branch in repository origin/tags/v0.0.5
Seen branch in repository origin/tags/v0.0.6
Seen branch in repository origin/tags/v0.0.7
Seen 8 remote branches
 > git tag -l # timeout=10
 > git rev-parse refs/tags/stage-v0.0.2^{commit} # timeout=10
 > git rev-parse refs/tags/v0.0.7^{commit} # timeout=10
 > git rev-parse refs/tags/stage-v0.0.1^{commit} # timeout=10
 > git rev-parse refs/tags/v0.0.6^{commit} # timeout=10
 > git rev-parse refs/tags/v0.0.5^{commit} # timeout=10
 > git rev-parse refs/tags/v0.0.4^{commit} # timeout=10
 > git rev-parse refs/tags/stage-v0.0.3^{commit} # timeout=10
Done. Took 0.2 sec
No changes

请注意,我每分钟使用一次 git 轮询。所以看起来 git 正确地检测到了新的分支,但是不知何故 git 轮询 Jenkins 所做的并不认为一个新的分支有资格作为一个“变化”,因为它一直在底部报告“没有变化”。

【问题讨论】:

标签: git github jenkins


【解决方案1】:

我已经对此进行了一段时间的搜索,并且能够找出从 git hub 释放标签时触发 jenkins 作业的解决方案。这是屏幕截图。从提供 git 存储库的位置选择高级选项并配置如下详细信息。所以当发布被标记时,詹金斯作业被触发。

Refspec 值应为+refs/tags/*:refs/remotes/tags/*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 2019-07-28
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2023-03-27
    • 2016-10-11
    相关资源
    最近更新 更多