Jenkins - 构建私有 GitHub 存储库

Jenkins - 构建私有 GitHub 存储库

客观的

本指南向您展示如何配置现有 Jenkins 服务器以使用GitHub 部署密钥与私有 GitHub 存储库进行通信。

我的意图是快速并以最少的解释直截了当。

先决条件

本指南假设您有:

  • 具有包含某种形式的源代码或文件的私有 GitHub 存储库的 GitHub 帐户。
  • 一个 AWS 账户,其中包含一个通过安装 Jenkins 运行的 EC2 实例。如果您没有此指南,请参阅我的Jenkins - 在 AWS 中设置构建环境指南。
  • 詹金斯的基础知识。
  • GitHub的基础知识。

我使用 macOS,但本指南也适用于 Linux 和 Windows。

概述

Jenkins - 构建私有 GitHub 存储库

  • 创建一个简单的 Jenkins 作业
  • 在 Jenkins 服务器上生成 SSH 密钥
  • 将 SSH 密钥添加为 Jenkins 凭据
  • 将 SSH 密钥添加为 GitHub 部署密钥
  • 将凭证添加到 Jenkins 作业

Jenkins - 构建私有 GitHub 存储库

在开始之前,请确保您的 Jenkins EC2 实例正在运行,登录您的 Jenkins 仪表板和您的 GitHub 帐户。

创建一个简单的 Jenkins 作业

  • 打开Jenkins 仪表板并从左侧菜单中选择新建项目。
  • 为项目命名(这可以是您想要的任何名称,但它代表工作本身)
  • 从选项列表中选择Freestyle 项目,然后单击确定
  • 加载作业配置视图后,找到源代码管理部分并勾选Git
  • 添加所需私有 GitHub 存储库的SSH 克隆 URL
  • 您应该会看到一条错误消息,内容如下:“无法连接到存储库...”。现在这很好;这是因为我们还没有设置 SSH 密钥。
  • 向下滚动到Build部分,单击Add build step,然后从列表中选择 * Execute shell 。
  • 在出现的文本区域中,输入:echo "Hello, world!"
  • 滚动到底部,然后单击保存
  • 您现在将被带到您的工作概览;单击左侧菜单中的立即构建以触发构建
  • 这应该立即失败,但这就是此时的意图。单击内部版本号旁边的红点以查看控制台输出。
  • 查看控制台输出,您应该会看到与以下内容相关的参考:“权限被拒绝”或“无法从远程存储库读取”——这就是我们要解决的问题。
  • 通过单击顶部的仪表板面包屑返回到Jenkins 仪表板,然后继续下一部分。

在 Jenkins 服务器上生成 SSH 密钥

  • 打开一个终端并通过 SSH 连接到您的 EC2 Jenkins 服务器:(用您的信息ssh -i /path/to/<your_key_pair.pem> ec2-user@<your_public_dns>替换)<angles>
  • sudo 到 jenkins 用户:sudo su -s /bin/bash jenkins.

本指南假定您使用的是 Linux 或 macOS,但如果您使用的是 Windows,则可以参考 AWS 指南,了解
使用 PuTTY 从 Windows 连接到您的 Linux 实例

  • 生成 SSH 密钥:ssh-keygen.
  • 接受提示中的默认设置并将密码留空。
  • 让终端保持打开状态并继续下一部分。

将 SSH 密钥添加为 Jenkins 凭据

  • 从Jenkins 仪表板的左侧菜单中选择Manage Jenkins 。
  • 在Security部分下,选择Manage Credentials。
  • 在标记为Stores scoped to Jenkins的表中,单击Jenkins商店。
  • 在标有System的表中,单击Global credentials域。
  • 从左侧的菜单中,单击Add Credentials。
  • 在出现的表单中,应用以下内容:
    • 种类:带有私钥的 SSH 用户名
    • 范围:全球
    • 身份证:(空白)
    • 说明:(空白)
    • 用户名:gh-deploy
    • 私钥:勾选直接输入,然后单击添加
    • 回到 Jenkins 终端会话,将私钥复制到剪贴板:cat ~/.ssh/id_rsa
    • 将此键粘贴到表单中,确保不包含任何额外的前/后空格
    • 密码:(空白)
    • 点击确定
  • 我们将在后续步骤中将此凭证应用于您的新工作。
  • 保持终端会话打开并继续下一部分。
  • 将 SSH 密钥添加为 GitHub 部署密钥

    • 打开 GitHub 并选择您在作业配置中指定的存储库
    • 在 repo 视图中,选择Settings选项卡
    • 从左侧菜单中,选择部署密钥,然后单击右侧显示添加部署密钥的按钮
    • 给部署密钥一个标题(将其与给詹金斯凭证的名称匹配是有意义的gh-deploy:)
    • 回到 Jenkins 终端会话,将公钥复制到剪贴板:cat ~/.ssh/id_rsa.pub
    • 将此键粘贴到表单中,确保不包含任何额外的前/后空格
    • 未选中允许写访问
    • 单击添加密钥
    • SSH 密钥现在附加到这个特定的 GitHub 存储库,并用作Deploy Key。有关部署密钥的更多信息,请查看GitHub 文档

    将凭证添加到 Jenkins 作业

    • 返回Jenkins 仪表板并选择我们在第一部分中创建的新作业。
    • 从工作概述;单击左侧菜单中的配置
    • 滚动到源代码管理部分并从凭证选择列表中选择您的新凭证
    • 您现在应该看到错误已解决
    • 滚动到底部,然后单击保存
    • 您现在将被带到您的工作概览;单击左侧菜单中的立即构建以触发构建
    • 作业现在应该成功了
    • 单击内部版本号旁边的蓝点以查看控制台输出。
    • 查看控制台输出,您应该会看到Hello, world!我们添加的 shell 命令和状态Finished: SUCCESS- 现在正在从私有 GitHub 存储库中提取作业!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小藕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值