【发布时间】:2018-03-26 00:35:08
【问题描述】:
我将 Jenkins 用于 CI/CD。 Git 存储库有一个 Jenkins 钩子,因此它会在每次推送时触发新构建,其中包括标签。
我的构建,由标签触发,产生以下输出。
commit notification 282aa9df9bc037df26f82d0aaf7d65e57b3c6c00
Building in workspace /var/jenkins_home/workspace/testproject
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url ssh://GIT-HOST/PRJ/REPO.git # timeout=10
Cleaning workspace
> git rev-parse --verify HEAD # timeout=10
Resetting working tree
> git reset --hard # timeout=10
> git clean -fdx # timeout=10
Fetching upstream changes from ssh://GIT-HOST/PRJ/REPO.git
> git --version # timeout=10
> git fetch --tags --progress ssh://GIT-HOST/PRJ/REPO.git +refs/heads/*:refs/remotes/origin/*
(1) > git rev-parse 282aa9df9bc037df26f82d0aaf7d65e57b3c6c00^{commit} # timeout=10
(2) > git branch -a -v --no-abbrev --contains 18dea36c9ada06c1c176b8864bb28166e2bdac3f # timeout=10
Checking out Revision 18dea36c9ada06c1c176b8864bb28166e2bdac3f (tagtag, origin/tagtag)
> git checkout -f 18dea36c9ada06c1c176b8864bb28166e2bdac3f
如您所见,构建是由 282aa9d (1) 触发的,它是一个标签,但后来,它被转换为提交 18dea36 (2),从那时起,只有一个提交信息可供用户使用(例如: env 变量。)这是一个有效的提交,但标签信息不再可用。
我如何知道构建已由标签触发,获取该标签信息并能够在管道中使用它?
编辑:只是为了澄清-我正在寻找一个选项来触发所有推送的构建,但如果标签确实执行其他步骤(或禁止其他步骤)。
【问题讨论】: