0

我设置了一个简单的 Jenkinsfile,它只回显了几个步骤。我在 Bitbucket (git) 和两个名为 master 和 develop 的分支上设置了一个新的 repo。

当我提交一些东西来掌握时,两个分支都签出并在 jenkins 中构建。在开发分支上的行为相同。

一旦提交到 master 分支,是否可以限制只有 master 在 Jenkins 中构建?开发类似的行为?

4

1 回答 1

0

我认为您可以使用临时文本文件来保存每个分支的最后一次成功构建 SHA ($LAST_SUCCESSFUL_BUILD_SHA)。然后,当来自 repo 的新提交时,我们将检查提交来自哪个分支。

CURRENT_SHA=$(git rev-parse HEAD)

if [ $FORCE_REBUILD = true ] || [ $CURRENT_SHA != $LAST_SUCCESSFUL_BUILD_SHA ]; then
    echo "New commits available OR it was forced to build."
else 
    echo "Already up-to-date. Skip build."
    curl -v -X POST --data "description=no changes, skip." ${JENKINS_BUILD_URL}submitDescription --user <username>:<password>
    curl -v -X POST ${BUILD_URL}stop --user <username>:<password>
    echo "Waiting for abort to take effect :D"
fi

如果新提交来自另一个分支,最好使用 Jenkins 开放 API 跳过构建。

我已将其应用于我的自由式工作,但尚未尝试使用 Jenkinsfile。

于 2017-12-09T05:21:43.010 回答