PM2+Nodejs 双发持续集成让你的服务重新焕发生机!

阅读时长 7 分钟读完

在现代开发中,自动化和快速部署是至关重要的。特别是在前端开发中,我们经常需要与后端服务一起工作。常常需要在自己的电脑上开发和调试前端代码,同时需要与后端服务进行相应的集成。而这个集成过程是需要不断地手动部署来完成的,这样的过程不仅费时费力,也容易出现错误。这时,持续集成(CI)就成为了我们前端开发者的一个重要的利器了。本文将介绍如何使用 PM2 和 Nodejs 实现双方持续集成的方法。

什么是PM2

PM2 是一个 Nodejs 进程管理器,它可以帮助我们在应用程序处于生产环境时进行进程管理和监控。它的功能包括自动重启,在应用程序挂掉时重新拉起应用程序,自动负载均衡以及进程监控等。对于 Nodejs 应用程序而言,使用 PM2 可以让我们的应用更加稳定和高效。

什么是持续集成

持续集成(Continuous Integration, CI)是一种软件开发实践,他的目的是让项目能够更加可持续、高效的进行开发。CI 的核心要素是持续构建、持续测试和持续部署。持续集成是通过不断地构建、测试和部署来减少代码集成问题的,目的是让开发者尽早发现问题,并在问题变得复杂之前就进行解决。

实现 PM2 和 Nodejs 的持续集成

下面,我们将会讲述如何实现使用 PM2 和 Nodejs 的持续集成。

第一步:安装 PM2

在终端运行以下命令安装 PM2:

第二步:创建一个项目

在终端运行以下命令创建一个新项目:

由于我们在本文中只关注 PM2 和 Nodejs 的持续集成,因此我们会省略掉其他的步骤,仅关注必要的内容。

第三步:编写 Nodejs 代码

现在,让我们在项目的根目录中创建一个简单的 Nodejs 文件 app.js ,并输出 "Hello World!" 信息:

第四步:运行项目

现在,我们可以在终端中运行以下命令来运行我们的应用程序:

如果运行正确,我们会在终端中看到如下的输出:

第五步:使用 PM2 运行项目

现在,我们可以运行以下命令使用 PM2 来运行我们的应用程序:

这样,我们的应用程序就已经被 PM2 启动了。我们可以使用以下命令来查看 PM2 中正在运行的进程:

我们可以看到,我们的应用程序已经被 PM2 启动:

第六步:定制部署脚本

现在,我们需要在我们的项目中创建以下两个脚本:“start” 和 “stop”。

在 package.json 中添加以下 "scripts" 配置:

上述代码中,我们使用 PM2 提供的启动和停止命令来创建一个名为 "start" 的脚本和一个名为 "stop" 的脚本。

第七步:使用 Git 和 GitHub 实现自动化

我们只需要将项目推送到远程的 GitHub 仓库,即可触发持续集成的过程。在这里,我们使用 GitHub 的 Actions 工具,来实现自动推送和自动化测试。

在项目的根目录下,我们可以创建一个名为 ".github/workflows" 的文件夹,然后在该文件夹中创建一个名为 "ci.yml" 的文件,该文件包含以下内容:

-- -------------------- ---- -------
----- --
---
  -----
    ---------
      - ------
-----
  ------
    -------- -------------
    ------
      - ----- ------- ------------
        ---- --- -------
      
      - ----- ----
        ---- --- ----
展开代码

上述代码中,我们定义了一个名为 "CI" 的 Workflow,它会在推送到 "master" 分支时被触发。当此次触发时,会运行包含了两个步骤的任务。第一个步骤是安装依赖项,第二个步骤是运行测试。

在项目中添加测试:

在项目的根目录下,我们可以创建一个名为 "test" 的文件夹作为测试文件夹,在该文件夹中创建一个名为 "app.test.js" 的文件,该文件包含以下内容:

-- -------------------- ---- -------
----- ------ - ------------------
----- ---- - ------------------------------

---------------- -------- -- -- -
  --------- --- ------- ------ -- -
    ---------- -------- ------- ------- ------- -- -
      ------------------- ------
      -------
    ---
  ---
---
展开代码

上述代码中,我们使用 assert 库来编写一个简单的断言,以确保我们的应用程序能够成功运行。

第八步:推送代码到 GitHub

我们可以将项目推送到 GitHub,这时我们应该能够在 GitHub 上的 Actions 中看到我们的 Workflow。

第九步:触发自动化测试

我们可以手动触发自动化测试进行验证或者在推送代码到 GitHub 后,Actions 会自动触发测试。

第十步:实现自动化部署

我们可以在 Workflow 的最后一行添加以下代码来实现自动化部署:

-- -------------------- ---- -------
      - ----- ------
        ----- ------------------------------
        -----
          ---------------- --- ----------------------- --
          --------------- --- ---------------------- --
          ------------ --- ------------------- --
          ------------ --- ------------------- --
          ------- --
          ------- ----------------------------
展开代码

上述代码中,我们使用了 easingthemes/ssh-deploy 工具来实现自动化部署。在这里,需要配置 GitHub 的 Secrets。

最后,我们只需推送代码到 GitHub,就可以自动化测试和部署我们的服务了。是不是非常方便呢?

结尾

通过本文的介绍,相信大家已经能够了解如何使用 PM2 和 Nodejs 来实现双方持续集成了。这种持续集成的方式可以帮助我们快速部署我们的服务,提高我们的开发效率和工作效率。如果您有任何问题或建议,请在评论区留下您的宝贵意见。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67946dc5504e4ea9bd8f3aec

纠错
反馈

纠错反馈