Измените конвейер jenkins на использование github вместо gitlab - PullRequest
6 голосов
/ 01 апреля 2020

У меня есть набор автоматических тестов, которые запускаются в конвейере jenkins, код теста находится в gitlab. Раздел, в котором я извлекаю код из gitlab, выглядит следующим образом:

enter image description here

Я использую учетные данные gitlab, которые уже присутствовали там (поскольку другие проекты используют тот же gitlab учетные данные).

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

  agent {
    kubernetes {
      defaultContainer 'jnlp'
      yaml """
        apiVersion: v1
        kind: Pod
        metadata:
          labels:
            application: auto_ish
        spec:
            containers:
              - name: node
                image: node:12.14.1
                command:
                - cat
                tty: true
      """
    }
  }
  stages {
    stage('Build') {
      steps {
        container('node') {
            sh '''
                npm install
            '''
        }
      }
    }

    stage('Test') {
      steps {
        container('node') {
          sh 'node_modules/.bin/wdio ./test/config/wdio.conf.acc.js --suite SmokeTest --mochaOpts.grep=@smoke' 
         }
      }
    }

Моя проблема:

База кода моих автоматических тестов недавно была перемещена на github, и у меня возникли проблемы с ее получением работать в Дженкинс. Для github у меня есть личный токен доступа, который мне нужно использовать, поэтому нет личного ключа, который у меня был для gitlab. Я попытался добавить этот токен в диспетчер учетных данных, но после добавления он не отображается в раскрывающемся списке.

Я выполнил несколько пошаговых инструкций, в которых предлагалось установить плагины github для jenkins, а затем настроил свой личный токен доступа в конфигурации jenkins, например:

enter image description here

Я проверил соединение, и оно заработало.

С этого момента я понятия не имею, как поступить. Я просто хочу вытащить код из кодовой базы для запуска проекта. Нет необходимости запускать сборки, когда код отправляется на github, так как мои тесты запускаются, когда другие задания заканчиваются sh.

Но так как мои учетные данные не находятся в диспетчере учетных данных, я не могу просто добавить новый репозиторий здесь. Это также означает, что я не могу сослаться на свой файл jenkins здесь.

Я читал где-то, что я должен был сослаться на свой проект github здесь: enter image description here Я сделал это, но я думаю, что этого будет недостаточно , Я полагаю, что мне нужно куда-нибудь вытащить код из нового репозитория, но я понятия не имею, где.

В связи с этим у меня возникает вопрос: где и как я могу получить код из моего репозитория github, используя указанный мной персональный токен / github-сервер ?.

Ответы [ 3 ]

4 голосов
/ 06 апреля 2020

Вы можете настроить Jenkins экземпляр с Github с помощью SSH key

. Вам просто нужно создать SSH publi c и приватные ключи и после public ввести

Github> Настройки> Ключ SSH / GP C> Добавить ключ publi c Убедитесь, что вы не добавите пробел и новую строку

Сохраните и выйдите из Github

Теперь go - Jenkins * Начните настройку проекта или Go - credentials> System> Global credentials> Add credentials откроется страница

  • В раскрывающемся списке Kind выберите SSH Username with private key
  • Проверьте переключатель с закрытым ключом, а затем нажмите кнопку Add key, текстовая область откроет, вставьте свой секретный ключ в эту текстовую область. Убедитесь, что вы скопировали закрытый ключ и в то время как вставка не добавляет никакого места в этом. Убедитесь, что вы выбрали весь ключ, Begin и End текст ключа.

enter image description here

enter image description here

  • Теперь сохраните, и во вкладке Настройка проекта Source Code Management вы найдете учетные данные и раскрывающийся список, выберите новый настроенный ключ из этого раскрывающегося списка jenkinsSSH.

  • Убедитесь, что вы клонировали репозиторий Github, используя SSH, а не HTTPS

enter image description here

и соберите приложение. это будет работать

для получения дополнительной информации смотрите этот видеоурок https://www.youtube.com/watch?v=mGXGIOpKAos&list=PLhW3qG5bs-L_ZCOA4zNPSoGbnVQ-rp_dG&index=9

[Обновить]

Клонировать репозиторий git с использованием Персонального токена доступа , вы можете использовать следующий формат

https://user:token@github.exampleco.com/org/repo.git как

git clone https://user:token@github.exampleco.com/org/repo.git

Есть еще один вопрос, такой же, как этот, и он предоставил одно решение, может помочь вам

Git Клон в Jenkins с персональным доступом Токен бездействует вечно

пожалуйста, посмотрите

3 голосов
/ 08 апреля 2020

После некоторого интенсивного поиска в Google я нашел ответ, который оказался намного проще, чем я думал:

Очевидно, что личный токен доступа можно использовать как пароль, насколько это касается Дженкинса. Я добавил новые учетные данные в диспетчер учетных данных, выбрал тип «имя пользователя и пароль», вставил несуществующее имя пользователя («пользователь») и поместил токен личного доступа в поле пароля.

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

2 голосов
/ 02 апреля 2020

Можете ли вы ссылаться на этот URL> https://github.com/jenkinsci/stashnotifier-plugin/issues/216. Это может быть полезно.

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