创建一个 Jenkins 构建任务来自动化 Web 部署

构建和部署应用程序可能是一项困难的任务。为什么不使用Jenkins构建作业来自动化整个过程呢?您专注于构建,而Jenkins负责代码部署。

在本教程中,您将学习如何使用Jenkins自动化代码部署,以节省时间,使您能够同时专注于其他任务。

准备好了吗?开始吧!

先决条件

本教程包含了实际演示。如果您想跟随操作,请确保您具备以下条件:

尽管下面的截图中显示的仓库略有不同于上面链接的仓库,但一旦派生,您将使用不同的仓库URL。

创建Jenkins构建任务

Jenkins是一个开源的自动化服务器,帮助自动化软件开发生命周期中的构建、测试和部署,从而实现持续集成和持续交付。

在这个演示中,您将了解如何创建一个Jenkins构建任务。构建任务通常是配置自主运行构建/打包软件任务的方式。

  1. 启动您喜欢的浏览器,导航到http://localhost:8080/,并登录到您的Jenkins仪表板。端口8080是访问Jenkins仪表板的默认端口。

2. 在Jenkins的仪表板上,单击左侧面板中的新建项目按钮以初始化创建构建任务。这将重定向浏览器到一个新的任务页面。

Creating a new Jenkins Job

3. 接下来,在下面显示的输入字段中输入您喜欢的构建任务的项目名称。在这个示例中,项目名称为webDeploy

选择自由风格项目选项以启用创建作业、脚本后构建操作,并配置项目构建触发器,然后单击确定。您将被重定向到作业配置页面,在下一步中您将看到它。

Creating a Jenkins project

4. 点击常规选项卡,并勾选GitHub 项目框以链接源代码管理器,以便 Jenkins 知道从哪里拉取您的代码。本演示使用 Git 作为托管在 GitHub 上您之前复刻的示例项目的源代码管理器。将您的 GitHub 存储库 URL 从 GitHub 帐户粘贴到下面的项目 URL字段中。

Linking Jenkins to a source code manager

5. 最后,点击源代码管理选项卡,然后选择Git,这是您的源代码管理器。

复制并粘贴此 GitHub 存储库 URL (https://github.com/Claradev32/webDeploy.git) 到输入字段中。点击保存按钮保存您当前的配置。

Linking Jenkins to Source Code Manager (Git)

为 Jenkins 项目创建凭据

也许您更喜欢将您的存储库保持私有,这对客户项目来说很常见。如果是这样,您需要创建凭据来授权 Jenkins 从 GitHub 克隆您的项目。

要为您的 Jenkins 项目创建凭据,您必须首先生成并添加一个 SSH 密钥到您的 GitHub 帐户:

1. 打开你的Ubuntu终端,运行以下命令生成一个使用ed25519作为密钥类型的SSH密钥。将[email protected]替换为你的GitHub邮箱地址,以将其添加为生成的SSH密钥的注释。

ssh-keygen -t ed25519 -C "[email protected]"

2. 保存你的公共SSH密钥,执行以下步骤:

  • 指定一个保存位置并按下Enter。如果不指定,该命令将在默认位置保存SSH密钥,如下所示。
  • 为SSH密钥输入一个安全的密码,按Enter确认密码,然后你将看到生成的公共SSH密钥的输出。
  • 记住生成的SSH密钥的位置,稍后将在下面的步骤中将其添加到GitHub帐户中。
Adding a Passphrase to the SSH key

3. 在你的Web浏览器上登录GitHub并转到你的账户设置页面。

4. 点击左侧面板上的SSH和GPG密钥链接,然后点击新SSH密钥,如下所示,配置你的新SSH密钥。

Creating a Github SSH key

5. 最后,输入你对SSH密钥的首选标题。该标题仅用于内部文档目的。在Key输入字段中粘贴你的SSH密钥(从之前保存的文件中),然后点击Add SSH Key保存密钥。

请记住,这是你的公钥,而不是私钥!

Saving New SSH Key

将SSH私钥添加到Jenkins凭据

现在您已经创建了用作Jenkins凭据的SSH密钥对,您还必须将您的SSH私钥添加到Jenkins凭据中,以授权Jenkins访问您的GitHub仓库。但首先,请记下您的GitHub仓库的SSH URL。

1. 导航至您的GitHub仓库页面,点击Code → SSH,然后点击下面显示的复制图标将SSH URL复制到剪贴板上。

Noting Down GitHub SSH URL

2. 接下来,导航至您的Jenkins仪表板,然后点击管理Jenkins以访问项目设置页面。

Accessing Jenkins Settings

3. 向下滚动,然后点击安全部分下的管理凭据选项,以查看您的Jenkins凭据列表。

Accessing Jenkins Credentials

4. 在下面显示的凭据页面上点击Jenkins,以访问“系统”页面,您可以在该页面上添加新凭据。

Accessing System Page to Add Credentials

5. 现在,在系统页面上,将鼠标悬停在全局凭据(不受限制)选项上以显示下拉菜单,然后点击向下的箭头图标。

从下拉菜单中点击添加凭据。页面将重定向到一个表单,在该表单中,您将配置下一步中显示的新凭据。

System Page

6. 在第一个输入字段中选择带私钥的SSH用户名,然后用户名字段中输入项目用户名。例如,用户名为CI/CD

在这种情况下,用户名仅用于内部文档,不用于身份验证。

Setting a Username for Jenkins Global Credentials

7. 运行下面的命令来查看您的SSH私钥,将位置更改为您的密钥保存的位置,如下所示(下面的密钥位于主目录中)。记下您的SSH私钥,因为您将在下一步中将其添加到Jenkins凭据中。

cat ~/.ssh/id_ed25519
Viewing Secret Key

8. 一旦您记下了SSH私钥,返回到全局凭据(无限制)页面。

将您在“为Jenkins项目创建凭据”部分(第二步)设置的密码输入到密码输入框中,然后点击确定。这样做将授权Jenkins访问您的GitHub存储库。

如果在创建SSH密钥时没有设置密码,请点击直接输入,然后点击添加按钮。将您的SSH私钥输入到下面的密钥输入框中,如下所示,然后按下确定按钮以保存凭据。

Adding GitHub SSH key to Jenkins Credentials

8. 返回到您的Jenkins仪表板,将鼠标悬停在您的项目上,然后点击向下的箭头图标,选择配置,如下图所示。页面将重定向到您项目的配置页面。

Configuring Jenkins Project

10. 最后,在下拉菜单字段中选择凭据用户名(从“将密钥添加到Jenkins凭据”部分的第六步)。 Jenkins默认应用CID原则以确保您项目的持续集成和部署。

Connecting Jenkins to GitHub

配置构建触发器和后构建操作

您现在成功创建了构建任务的框架。但是,如果您经常对项目进行更改,那么每次都必须手动重新部署吗?为什么不设置构建触发器呢? 构建触发器会自动重新部署您在GitHub上推送的项目更改。

1. 在您项目的配置页面上,单击构建触发器选项卡,并选中GitHub挂钩触发器进行GITScm轮询选项。此选项允许您自动重新部署您项目的更改。

Configuring build triggers

2. 单击构建选项卡,单击添加构建步骤,然后选择执行shell以创建一个脚本,该脚本将在Jenkins下载您代码的新版本时运行。

Creating a Build Script

您创建的shell脚本取决于您的开发环境。 如果您在Windows上,Windows将执行该脚本; 其他操作系统也是如此。

3. 输入以下shell命令,并单击保存以保存构建脚本。保存更改后,页面将重定向回您项目的仪表板。

下面的命令从您的源代码远程位置(origin master)拉取您的代码,并使用NodeJS NPM installnpm install)安装运行项目所需的必要依赖项。这些命令在您向源代码管理器发出推送请求时执行。

这个特定项目利用NodeJS来管理依赖关系,但您的特定项目可能不同。

git pull origin master
npm install
Adding Commands to the Automated Build Script

4. 现在,在您项目的仪表板上,点击立即构建来运行构建。

Running the Build

5. 滚动到构建历史记录以查看构建的状态。如果构建成功,您将看到类似于下面截图的输出。

Viewing Successful Build

如果构建失败,您将看到下面显示的输出。

Failed build history

6. 接下来,向上滚动并点击配置以配置项目的后构建操作。

Configuring Project’s Post Build Actions

7. 点击后构建操作选项卡,然后点击添加后构建操作并选择Git发布者。页面会展开Git发布者设置部分(下一步)。

Accessing Git Publisher Post-Build Action

8. 最后,启用仅在构建成功时推送选项,并点击保存按钮以保存更改。启用此选项告诉Jenkins仅在构建成功时部署代码。

Adding Post-Build Actions

结论

在这个教程中,您已经学习了将 Jenkins 连接到您的源代码管理系统的过程。您还创建了一个构建脚本,当 Jenkins 下载您的代码的新版本时会自动运行,并设置了构建触发器来自动化 Web 部署。

现在,为什么不通过 Jenkins 构建作业自动化您的应用程序部署,节省一些时间呢?

Source:
https://adamtheautomator.com/jenkins-build-job/