#xcode #git #jenkins #versioning #fastlane
#xcode #git #дженкинс #управление версиями #fastlane
Вопрос:
У меня есть проект Xcode (iOS) на GitHub. Всякий раз, когда я отправляю изменения на GitHub, я хочу, чтобы он отправлял новую версию в TestFlight.
Это моя текущая настройка:
- Дженкинс опрашивает
master
ветку, когда доступна новая фиксация, запускается Fast Lane. - Fast lane увеличивает номер сборки и загружает в TestFlight.
- Fast lane фиксирует увеличение номера сборки и возвращает изменение к
master
.
Проблема в том, что эта новая фиксация master
приводит к повторному выполнению шага 1, таким образом, он находится в бесконечном цикле.
Каков рекомендуемый способ решения этой проблемы?
Комментарии:
1. Согласно этому комментарию , может существовать способ отфильтровывать коммиты определенного пользователя во время опроса в Jenkins. Попробую это, когда у меня будет возможность, и сообщу об этом.
Ответ №1:
мы используем специальные сообщения о фиксации, когда Дженкинс фиксирует изменения, пропуская ci.
и прекратил выделенную функцию.
def call() {
haveSKIPCICommit = sh (script: "git show --name-status | grep '\[skip ci\]'", returnStatus: true)
if(haveSKIPCICommit == 0){
return true
}
return false
}
для завершения потока наш Jenkinsfile использует эту функцию, чтобы проверить, какой поток следует использовать.
Ответ №2:
Мне пришлось
- определите пользователя gitblab и используйте его для внесения изменений.
- измените мое задание jenkins на параметризованное и определите параметр для имени пользователя (myuser).
-
добавьте имя пользователя в мой хук
def triggerUrl = jenkinsUrl "/job/" jenkinsJob "/buildWithParameters?token=" jenkinsToken "amp;myuser=" user.getName() new URL(triggerUrl).getText()