更改 jenkins 管道以使用 github 而不是 gitlab

Mar*_*ijn 7 github jenkins

我有一组在 jenkins 管道中运行的自动化测试,测试代码位于 gitlab 中。我从 gitlab 中提取代码的部分如下所示:

在此处输入图片说明

我使用那里已经存在的 gitlab 凭据(因为其他项目使用相同的 gitlab 凭据)。

我使用一个位于测试代码库中的简单 jenkinsfile 从这里运行脚本。大致是这样的:

  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' 
         }
      }
    }
Run Code Online (Sandbox Code Playgroud)

我的问题:

我的自动化测试的代码库最近移到了 github,我很难让它在 jenkins 中工作。对于 github,我有一个需要使用的个人访问令牌,因此没有像 gitlab 那样的私钥。我曾尝试将此令牌添加到凭据管理器,但添加后它没有显示在下拉列表中。

我按照一些演练告诉我为 jenkins 安装 github 插件,然后在 jenkins 配置中设置我的个人访问令牌,如下所示:

在此处输入图片说明

我测试了连接,它起作用了。

从这里开始,我不知道如何继续。我只想从代码库中提取代码来运行项目。当代码被推送到 github 时不需要触发构建,因为我的测试是在其他作业完成时触发的。

但是由于我的凭据不在凭据管理器中,我不能只在此处添加新的存储库。这也意味着我不能在这里引用我的 jenkinsfile。

我在某处读到我不得不在这里参考我的 github 项目: 在此处输入图片说明 我这样做了,但我认为这还不够。我想我需要从新仓库中的某个地方提取代码,但我不知道在哪里。

这让我想到了我的问题:如何使用我指定的个人访问令牌/github 服务器从我的 github 存储库中提取代码?。

Dup*_*ngh 5

您可以在key的帮助下配置Jenkins实例GithubSSH

您只需要创建SSH公钥和私钥以及过去的public密钥

Github > Settings > SSH/GPC key > Add public key 确保你不会添加任何空格和新行

保存并退出 Github

现在转到Jenkins * 开始配置您的项目,或者转到credentials> System> Global credentials>Add credentials将打开一个页面

  • Kind下拉选择SSH Username with private key
  • 检查私钥单选按钮,然后按下Add key按钮,将打开一个文本区域,将您的私钥粘贴到该文本区域中,确保复制私钥并在粘贴时不添加任何空格。确保您选择了整个密钥,Begin以及End密钥的文本。

在此处输入图片说明

在此处输入图片说明

  • 现在保存并在配置项目Source Code Management选项卡时,您将找到凭据和下拉列表,从该下拉列表中选择新配置的密钥jenkinsSSH

  • 确保您使用SSHnot克隆您的 Github 存储库HTTPS

在此处输入图片说明

并构建应用程序。这会起作用

如需更多参考,请观看此视频教程 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

还有一个与此相同的问题,他提供了一个解决方案,可能对您有所帮助

带有个人访问令牌的 Jenkins 中的 Git Clone 永远闲置

请看一看


Mar*_*ijn 5

经过一番激烈的谷歌搜索后,我找到了答案,事实证明这比我想象的要容易得多:

显然,至少就詹金斯而言,个人访问令牌可以像密码一样使用。我向凭证管理器添加了新凭证,选择类型“用户名和密码”,输入不存在的用户名(“用户”),并将个人访问令牌放入密码字段。

这样我就可以像以前一样从下拉列表中选择凭据,并且项目可以毫无问题地克隆