Попытка использовать SCM: тег в работе Jenkins для репозитория Git, который требует имена пользователя / пароля -- git поле с участием maven поле с участием jenkins пол Связанный проблема

Attempting to use scm:tag in a Jenkins job for a Git repository that requires a username/password


6
vote

проблема

русский

Я пытаюсь настроить задание сборки jenkins / maven / git, как описано Axel Fontaine ( http://aaxelfontaine.com/blog/final-nail.html ). Я сделал дополнения к моим помпе, как описал, и соответственно настроил работу моих Дженкинса.

В разделе «Управление исходным кодом» я ввел URL-адрес репозитория для нашего внутреннего приведенного экземпляра Stask (который требует имя пользователя и пароль - SSH-ключевые ключи не являются опцией): <Код> https://stash.mycompany.com/scm/st_proj/my_repo.git

Я предоставил учетные данные имени пользователя / пароля.

Как в блоге post i создал предыдущий шаг Maven, который имеет цели versions:set -DnewVersion=$BUILD_NUMBER .

А также как в блоге post я устанавливаю цели для сборки <код> deploy scm:tag .

Когда задание выполняет, я получаю следующую ошибку.

 <код> [ERROR] Provider message: [ERROR] The git-push command failed. [ERROR] Command output: [ERROR] (gnome-ssh-askpass:32706):  Gtk-WARNING **: cannot open display: error: unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass' fatal: could not read Username for 'https://stash.mycompany.com': No such device or address   

Я понимаю, что это потому, что команда GIT пытается подсказать мне имя пользователя и пароль, но поскольку это работает как задание Jenkins, нет отображения для него, чтобы отправить приглашение.

Почему я предложил для имени пользователя и пароля, когда у меня есть их ранее в конфигурации задания? Я знаю, что они верны, потому что они должны были клонировать репозиторий.

Английский оригинал

I am attempting to configure a Jenkins/Maven/Git release build job as described by Axel Fontaine (http://axelfontaine.com/blog/final-nail.html). I made the additions to my POM as he described, and configured my Jenkins job accordingly.

In the Source Code Management section I entered the Repository URL for our internally hosted instance of Stash (which requires a username and password - SSH keys are not an option): https://stash.mycompany.com/scm/st_proj/my_repo.git

I provided the username/password credentials.

As in the blog post I created a Maven pre-step that has the goals versions:set -DnewVersion=$BUILD_NUMBER.

And also as in the blog post I set the goals for the build to deploy scm:tag.

When the job executes I get the following error.

[ERROR] Provider message: [ERROR] The git-push command failed. [ERROR] Command output: [ERROR] (gnome-ssh-askpass:32706):  Gtk-WARNING **: cannot open display: error: unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass' fatal: could not read Username for 'https://stash.mycompany.com': No such device or address 

I realize this is because the Git command is attempting to prompt me for a username and password, but since this is run as a Jenkins' job there is no display for it to send the prompt to.

Why am I being prompted for a username and password when I have them set earlier in the job configuration? I know they are correct because they were required to clone the repository.

</div
        
       
       

Список ответов

5
 
vote
vote
Лучший ответ
 

Другое (и намного лучше) Решение:

в jenkins вместо использования SCM: Tag Tag Tag, используйте действие Git Publisher после сборки. Здесь вы можете установить и нажать на меток в репозиторий, и плагин использует учетные данные, хранящиеся в Jenkins!

Захват экрана Git Publisher Раздел« SRC = »https://i.stack.imgur.com/ik8u9.png

 

Another (and much better) solution:

In Jenkins instead of using the scm:tag goal, use the Git Publisher post-build action. Here you can set and push a tag to the repository and the plugin uses the credentials stored in Jenkins!

Screen capture of Git Publisher section

</div
 
 
   
   
3
 
vote

После кабины на это некоторое время я нашел обходной путь - если не решение. (Решения все еще приветствуются)

  1. Войдите в раб jenkins build (как пользователь, который запускает рабочие места сборки)
  2. Установите кеш учетных данных <код> git config --global credential.helper 'cache --timeout 600'

Теперь, когда учетные данные используются для клонирования репозитория, они кэшируются Git для последующей команды push.

 

After pounding on this for a while I've found a workaround - if not a solution. (Solutions are still welcome)

  1. Log into the Jenkins build slave (as the user that runs the build jobs)
  2. Set the credential cache git config --global credential.helper 'cache --timeout 600'

Now when the credentials are used to clone the repository they are cached by Git for the subsequent push command.

</div
 
 
     
     
0
 
vote

Вам нужно также настроить учетные данные Git в Maven.

Сначала объявляйте сервер в Maven Settings.xml под <Код> <settings> <servers>

 <код> [a-ZA-Z0-9=_]*0  

Затем ссылайся на ваш сервер в вашем проекте Pom.xml Свойства

 <код> [a-ZA-Z0-9=_]*1  

См. см. http://maven.apache.org /maven-release/maven-relase-plugin/faq.html#credentials

 

You need to configure your git credentials in maven too.

First declare a server in maven settings.xml under <settings> <servers>

<server>     <id>gitserver</id>     <username>git-user</username>     <password>**************</password> </server> 

then reference your server in your project pom.xml properties

<project.scm.id>gitserver</project.scm.id> 

See http://maven.apache.org/maven-release/maven-release-plugin/faq.html#credentials

</div
 
 

Связанный проблема

0  GitLab - не в состоянии нажать локальные ветви на удаленный  ( Gitlab not able to push local branches to remote ) 
У меня есть доступ для разработчика вправо для GitLab. Я не могу выполнять какую-либо «толкать» операцию для удаленного начала. Может ли создавать новую локал...

1  Git: Как интегрировать выбранные файлы из другого репо на филиалы в основном репо?  ( Git how to integrate selected files from another repo into branches in main rep ) 
Вот настройка: У нас есть команда документации, которая работает в собственном хранилище Git. В основном репозитории продукта у нас есть мастер и бета-фил...

218  Попытка потянуть с ошибкой: не может открыть .git / fetch_head: разрешение запрещено  ( Trying to git pull with error cannot open git fetch head permission denied ) 
Помогите мне, пожалуйста, я пытаюсь запустить это в моем терминале: <код> asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull error: cannot open .git/FETCH_HEA...

6  Unsync'd git репозиторий в dropbox  ( Unsyncd git repository in dropbox ) 
У меня есть репозиторий Git (и рабочий каталог), который хранится в моем dropbox, поэтому я могу двигаться вперед и назад между компьютерами без необходимости...

6  Зависимости сборки TeamCity Build и выбирая правильную ветвь  ( Teamcity build dependencies and choosing the correct branch ) 
У меня есть один проект с тремя конфигурациями сборки: Интеграция Развертывать dev Развертывание релиза Конфиги по сборке 2 и 3 зависят от 1 через с...

2  «Git Push» не удалось: «Вы не указываете какие-либо refspecs для толкания»  ( Git push failed you did not specify any refspecs to push ) 
Я настроил проект Git на ProjectLocker, чтобы нажать на мои файлы GIT. Затем я вошел в каталог, где я инициализировал проект Git и устроил мои файлы. И, након...

2  Получите «Потяните имя запроса» из файла / строки  ( Get the pull request name from a file line ) 
Учитывая файл и конкретную строку, например <код> myFile.php line 123 , Будет возможен получить информацию о том, в которой потяните запрос или филиал или вы...

0  Как несколько пользователей могут использовать ту же иерархию каталога для выполнения операций GIT?  ( How can multiple users use the same directory hierarchy for doing git operations ) 
У меня есть .git / config файл, который имеет несколько пользователей, определенных как: <код> [user] name=user1 email=user1@domain.com name=u...

156  Git говорит, что удаленный REF не существует, когда я удаляю удаленную ветвь  ( Git says remote ref does not exist when i delete remote branch ) 
Я бежал <код> git branch -a <код> * master remotes/origin/test remotes/origin/master Я хочу удалить мою удаленную ветвь Я попробовал <код> git ...

4  Сообщение об ошибке Xcode «Удаленный репозиторий отклонил коммиты» при нажатии на GitHub  ( Xcode error message the remote repository rejected commits when pushing to git ) 
У меня есть филиал названа разрабатывать что я натянул, добавил какой-то код, совершенный, потянул снова, и теперь пытаюсь нажать, но я получаю следующее со...

0  Изменения после запроса по тяги  ( Changes after pull request ) 
Я сделал запрос на тягу на проект GitHub, но он был отклонен из-за некоторых изменений, которые были рекомендованы мне. Теперь я вижу, что после моего запроса...

0  Делал ли Git Compart, Git Thing и подталкивал мои изменения в репо. Как я могу отправить запрос на тягу на тот, который я совершил  ( Did a git commit git pull and pushed my changes to the repo how can i send a p ) 
Я искал это через Интернет, но не смог найти решение. Вот мой сценарий, 1) Я сделал свои местные изменения. Делал ли GIT Commit. Это получит удостоверение л...

4  Чистый запуск SSHD HelpMSG 3534  ( Net start sshd helpmsg 3534 ) 
Я пытаюсь настроить git на коробке Windows и пока все, кажется, работает ... кроме этого: <Код> find_end6 Получает ошибку <код> find_end7 Когда я набрал...

0  Digitalocean не обновляет должным образом  ( Digitalocean not updating properly ) 
У меня есть проект реагирования, который я загрузил в цифровой океан. У меня есть проблема, где я внес некоторые изменения в проект. Требуется ли Git Pull (см...

8  Есть ли лучший способ написания GIT Pre-Commit Compart Coint, чтобы проверить любой файл PHP в фиксации для ошибок разбора?  ( Is there a better way of writing a git pre commit hook to check any php file in ) 
Что я имею до сих пор, это <код> #!/bin/sh php_syntax_check() { retval=0 for i in $(git-diff-index --name-only --cached HEAD -- | grep -e '.php$');...

Связанный проблема

0  GitLab - не в состоянии нажать локальные ветви на удаленный 
1  Git: Как интегрировать выбранные файлы из другого репо на филиалы в основном репо? 
218  Попытка потянуть с ошибкой: не может открыть .git / fetch_head: разрешение запрещено 
6  Unsync'd git репозиторий в dropbox 
6  Зависимости сборки TeamCity Build и выбирая правильную ветвь 
2  «Git Push» не удалось: «Вы не указываете какие-либо refspecs для толкания» 
2  Получите «Потяните имя запроса» из файла / строки 
0  Как несколько пользователей могут использовать ту же иерархию каталога для выполнения операций GIT? 
156  Git говорит, что удаленный REF не существует, когда я удаляю удаленную ветвь 
4  Сообщение об ошибке Xcode «Удаленный репозиторий отклонил коммиты» при нажатии на GitHub 
0  Изменения после запроса по тяги 
0  Делал ли Git Compart, Git Thing и подталкивал мои изменения в репо. Как я могу отправить запрос на тягу на тот, который я совершил 
4  Чистый запуск SSHD HelpMSG 3534 
0  Digitalocean не обновляет должным образом 
8  Есть ли лучший способ написания GIT Pre-Commit Compart Coint, чтобы проверить любой файл PHP в фиксации для ошибок разбора?