Выпуск Jenkins git maven - сбой git push / обновления были отклонены - PullRequest
1 голос
/ 28 апреля 2019

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

Я попытался добавить предварительный шаг, который будет выполнять "git fetch" и "git pull origin master", но я все еще получаю ошибку.Кажется, он создает локальное репо где-то еще, кроме рабочей области Дженкинса.Может кто-нибудь указать мне правильное направление?

10:44:05 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.2:prepare (default-cli) on project test: Unable to commit files
10:44:05 [ERROR] Provider message:
10:44:05 [ERROR] The git-push command failed.
10:44:05 [ERROR] Command output:
10:44:05 [ERROR] To ssh://abc.example.com/test.git
10:44:05 [ERROR] ! [rejected]          master -> master (fetch first)
10:44:05 [ERROR] error: failed to push some refs to 'ssh://gitlab@abc.example.com/test.git'
10:44:05 [ERROR] hint: Updates were rejected because the remote contains work that you do
10:44:05 [ERROR] hint: not have locally. This is usually caused by another repository pushing
10:44:05 [ERROR] hint: to the same ref. You may want to first integrate the remote changes
10:44:05 [ERROR] hint: (e.g., 'git pull ...') before pushing again.
10:44:05 [ERROR] hint: See the 'Note about fast-forwards' in 'git push --help' for details.
10:44:05 [ERROR] -> [Help 1]

Ответы [ 2 ]

1 голос
/ 01 мая 2019

Я исправил проблему, создав новую работу Дженкинса. После этого все работало нормально.

0 голосов
/ 28 апреля 2019

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

Убедитесь, что ваш локальный репозиторий обновлен (git pull), затем запустите команду mvn.

В этом выпуске GitLab также предлагается:

Вы можете пропустить нажатие назад на master и просто зафиксировать с новым тегом.

Run

mvn release:prepare release:perform -DpushChanges=false
git push —tags

Дополнительное преимущество: вы не портите историю коммитов мастера двумя коммитами релиза.
Конечно, теперь вам нужно как-то поднять свою версию.
Вы можете использовать подход ci_pipeline_id через включение этого плагина .

...