如何防止CI因内部版本号增加而陷入循环?

时间:2019-03-13 19:24:16

标签: xcode git jenkins versioning fastlane

我在GitHub上有一个Xcode(iOS)项目。每当我将更改推送到GitHub时,我都希望它将新版本推送到TestFlight。

这是我当前的设置:

  1. Jenkins轮询master分支,当新提交可用时,它将启动Fast Lane。
  2. 快速通道增加内部版本号并上传到TestFlight。
  3. 快速通道提交内部版本号增加,并将更改推回到master

问题在于master上的新提交导致步骤1再次执行,因此处于无限循环中。

解决此问题的推荐方法是什么?

2 个答案:

答案 0 :(得分:1)

当詹金斯提交更改 skip ci 时,我们使用特定的提交消息。

并选择了专用功能。

def call() {
    haveSKIPCICommit = sh (script: "git show --name-status | grep '\\[skip ci\\]'", returnStatus: true)
    if(haveSKIPCICommit == 0){
        return true
    }
    return false
}

要完成流程,我们的Jenkinsfile使用此功能检查应使用哪个流程。

答案 1 :(得分:0)

我必须

  1. 定义一个gitblab用户并将其用于推送更改。
  2. 将我的jenkins作业更改为参数化的作业,并为用户名(myuser)定义一个参数。
  3. 将用户名添加到我的钩子中

    def triggerUrl = jenkinsUrl + "/job/" + jenkinsJob + "/buildWithParameters?token=" + jenkinsToken + "&myuser=" + user.getName()
    new URL(triggerUrl).getText()