Ошибка при отправке в репозиторий GitHub из Jenkins - невозможно использовать Git Publisher - PullRequest
4 голосов
/ 14 марта 2019

Я пытаюсь перейти на репозиторий GitHub от Jenkins, используя

git remote set-url origin git@github.com:$reponame.git
git checkout $branch
git add file
git commit -m "Add file"
git push origin $branch

Однако я получаю сообщение об ошибке:

ssh: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by ssh)
ssh: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by ssh)
Host key verification failed.

Все ответы, которые я видел для решения этой рекомендации, используйте шаг пост-сборки Git Publisher. Я не могу использовать Git Publisher, так как у меня определено несколько SCM, определенных переменной $ reponame.

Я попытался просмотреть вывод git show-ref, и это показывает список ветвей, которые являются частью репозитория GitHub.

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

UPDATE: Я был в состоянии успешно протолкнуть, однако изменения не отражаются на ветви GitHub. Когда я проверяю GitHub, коммит не добавляется в ветку. Когда я снова запускаю задание, push возвращает «Все актуально», подразумевая, что ветвь, в которую оно отправило, уже имеет эти изменения.
Куда толкает этот Git push? И почему изменения не отражаются на удаленной ветке GitHub?

Ответы [ 3 ]

2 голосов
/ 17 марта 2019

Как указано , упомянутое здесь , для среды bitnami.com :

Не могли бы вы попробовать запустить source /opt/bitnami/use_jenkins перед настройкой репозитория Git вJenkins: он загрузит все необходимые env-переменные, которые вам нужны.

Если вы используете стек LAMP, искомый скрипт будет иметь имя /opt/bitnami/use_lamp

Обратите внимание, что имя этого скрипта имеет имя use_APPNAME.
В зависимости от используемого вами стека Bitnami заполнитель APPNAME будет изменен в зависимости от имени приложения.

Также дважды проверьте характер вашего ключа SSH ( новый формат OPENSSH или старый формат PEM openssl )

2 голосов
/ 24 марта 2019

Я бы использовал Jenkins конвейеры или Multibranch , что позволяет вам продвигать репо без использования плагина GitHub Publisher. Вы должны создать Jenkinsfile в своем репо и создать работу, следуя документации. Тогда вам нужно варианты:

  1. SSH, как вы делаете:

        stage('Preparation') {
            // Get some code from the branch sending the webhook in GitHub 
            git 'your git repo'
        }
    
        stage('Build') {
            // Do some stuff here
        }
    
        stage('Push') {
            // Commit and push with ssh credentials
            sshagent (credentials: ['your credentials']) {
                sh "git commit -am 'Commit message'"
                sh 'git push origin HEAD:<yourbranch>' 
            }
        }
    
  2. HTTPS в качестве другого ответа предлагает:

        stage('Preparation') {
            // Get some code from the branch sending the webhook in GitHub 
            git 'your https repo'
        }
    
        stage('Build') {
            // Do some stuff here
        }
    
        stage('Push') {
          // Commit and push with ssh credentials
          withCredentials(
           [string(credentialsId: 'git-email', variable: 'GIT_COMMITTER_EMAIL'),
            string(credentialsId: 'git-account', variable: 'GIT_COMMITTER_ACCOUNT'),
            string(credentialsId: 'git-name', variable: 'GIT_COMMITTER_NAME'),
            string(credentialsId: 'github-token', variable: 'GITHUB_API_TOKEN')]) {
               // Configure the user
               sh 'git config user.email "${GIT_COMMITTER_EMAIL}"'
               sh 'git config user.name "${GIT_COMMITTER_NAME}"'
               sh "git remote rm origin"
               sh "git remote add origin https://${GIT_COMMITTER_ACCOUNT}:${GITHUB_API_TOKEN}@yourrepo.git > /dev/null 2>&1"                     
               sh "git commit -am 'Commit message'"
               sh 'git push origin HEAD:<yourbranch>'
            }
        }
    
1 голос
/ 17 марта 2019

У меня возникли проблемы при клонировании и нажатии / вытягивании с ssh один раз, поэтому я заставил его работать, используя HTTPS , где он запрашивает мои пароли GitHub один раз, как вы можете видеть на прикрепленном изображении, и могу использовать этоHTTPS version URL для удаленного добавления.Я думаю, это заставит это работать, но это не является реальным решением вашей проблемы, и вещь SSH тоже должна работать.Я просто дал свое альтернативное решение на случай, если вы застряли в чем-то вроде срочной работы.Спасибо Ref Image

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