Задать вопрос
@trickster2019

Как использовать git команды через sshagent в Jenkins?

Добрый день, столкнулся с проблемой того что не получается использовать git команды через sshagent.
Задумка заключается в том что я заливаю обновление на GitHub, срабатывает хук, jenkins подключается к удалённому узлу, останавливает контейнер, получает обновление с GitHub, и потом снова запускает контейнер.
Написать Pipeline который запускает и останавливает контейнер я смог.
pipeline {
    agent any

    stages {
        stage('SSH') {
            steps {
                sshagent(credentials: ['docker-work']) {
                    sh "ssh -tt -o StrictHostKeyChecking=no root@192.168.0.103 docker-compose -f /home/CloudToDoList/CloudToDoList/docker-compose.yml stop"
                    sh "ssh -tt -o StrictHostKeyChecking=no root@192.168.0.103 docker-compose -f /home/CloudToDoList/CloudToDoList/docker-compose.yml up -d"
                }
            }
        }
    }
}

но возникли проблемы с командами git
pipeline {
    agent any

    stages {
        stage('SSH') {
            steps {
                sshagent(credentials: ['docker-work']) {
                    sh "ssh -tt -o StrictHostKeyChecking=no root@192.168.0.103 git --git-dir=/home/CloudToDoList/CloudToDoList/.git log"
                }
            }
        }
    }
}

Если я использую такой Pipeline то он уходит в бесконечную загрузку.
Но сама команда рабочая, в независимости от репозитория, всё выводиться корректно (log использую просто для теста)
root@docker-work:~# git --git-dir=/home/CloudToDoList/CloudToDoList/.git log
commit 660e12c50978995333eebeeecdcf2a71d6747961 (HEAD -> master, origin/master)
Author: root <root@docker-work.samovar.ru>
Date:   Thu Oct 24 14:27:28 2024 +0000

    готовая страница Note, File, Task, GroupTask, TaskForGroup
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы