Отдельная голова Jenkins GitSCM - PullRequest
1 голос
/ 10 июля 2020

У меня проблема при использовании плагина Jenkins GIT, поскольку он возвращает отсоединенную голову. Что я хочу выполнить sh:

  • Получить код из git репозитория
  • Внести изменения в указанные c файлы в этом репозитории
  • Использовать Jenkins на pu sh изменения в том же репозитории

Следующий код для извлечения из моего репозитория:

checkout([
     $class: 'GitSCM',
      branches: [[name: "branch1"]],
      userRemoteConfigs: [[credentialsId: "credentials", url: "repository"]],
      extension: [[
        $class: 'SubmoduleOption',
        disableSubmodules: false,
        parentCredentials: true,
        recursiveSubmodules: true,
        reference: '',
        trackinSubmodule: false
      ]],
    submoduleCfg:[]
  ])
}

Код на pu sh в мой репозиторий:

(Changes to file)
 
      ...

stage('Push to repo') {
  steps {
    sh """
      git checkout master
      git pull origin master
      git add test.txt
      git commit -m "Added string"
      git push origin master
    """
  }
}

Ошибка:

From gitlab.com:USERNAME/test-jenkins
 * branch            master     -> FETCH_HEAD
Already up-to-date.
error: Your local changes to the following files would be overwritten by checkout:
    test.txt
Please commit your changes or stash them before you switch branches.
Aborting
[detached HEAD 2adf034] Added string
 1 file changed, 1 insertion(+)

Если я удалю checkout:

! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@gitlab.com:USERNAME/test-jenkins.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for detail

Я попытался выполнить шаги в Git ответвление отделенное ГОЛОВКА .

1 Ответ

0 голосов
/ 12 июля 2020

Поскольку в документации упоминается состояние отдельной головы , вы можете добавить в свой конвейер sh step

sh("git checkout branch1")

Этого было бы достаточно для остальной части вашей операции. на ветке вместо отдельной ГОЛОВКИ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...