GitHub+Vultr实现持续部署(CI/CD)完全指南

目录

  1. 前言
  2. 环境准备
  3. 代码托管与提交
  4. 持续集成与部署
  5. FAQ

前言

GitHubVultr 是两个非常流行的云服务平台,前者提供代码托管和版本控制服务,后者提供高性能的云服务器。结合这两者,我们可以实现应用程序的持续集成和部署,大大提高开发效率和稳定性。

本文将详细介绍如何使用 GitHub 和 Vultr 搭建持续部署(CI/CD)的整个流程,帮助读者快速上手并应用到实际项目中。

环境准备

注册 GitHub 账号

首先,需要注册一个 GitHub 账号。GitHub 是全球最大的代码托管平台,提供代码仓库、版本控制、issue 跟踪等功能,是开发者必备的工具之一。

访问 GitHub 官网并点击”Sign up”按钮,根据提示完成注册即可。

注册 Vultr 账号

其次,需要注册一个 Vultr 账号。Vultr 是一家提供高性能云服务器的公司,拥有全球数十个数据中心,是非常受欢迎的云服务提供商之一。

访问 Vultr 官网并点击”Sign Up”按钮,根据提示完成注册。

代码托管与提交

创建 GitHub 仓库

登录 GitHub 后,点击右上角的”+”图标,选择”New repository”创建一个新的代码仓库。在仓库设置页面,填写仓库名称、描述,选择是否公开,然后点击”Create repository”完成创建。

将代码推送到 GitHub

将本地代码 commitpush 到 GitHub 仓库。具体操作如下:

  1. 在本地创建一个项目目录,并将代码放入其中。

  2. 打开终端,进入项目目录,执行以下命令:

    git init git add . git commit -m “Initial commit” git remote add origin https://github.com/your-username/your-repo.git git push -u origin master

    your-usernameyour-repo 替换为你的 GitHub 用户名和仓库名。

至此,你的代码已经成功推送到 GitHub 仓库了。

持续集成与部署

配置 Vultr 云服务器

登录 Vultr 控制台,点击”Deploy New Server”按钮,选择合适的服务器配置,如操作系统、CPU、内存等,然后点击”Deploy Now”完成创建。

创建完成后,记下服务器的 IP 地址,这将在后续步骤中使用。

设置 GitHub Actions 自动化部署

GitHub Actions 是 GitHub 提供的一个强大的持续集成和部署工具。我们可以利用它来自动化部署代码到 Vultr 云服务器。

  1. 在 GitHub 仓库根目录创建 .github/workflows 目录。

  2. 在该目录下创建一个 YAML 文件,如 deploy.yml,内容如下:

    yaml name: CI/CD

    on: push: branches: [ master ]

    jobs:

    build: runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Deploy to Vultr
      env:
        HOST: ${{ secrets.HOST }}
        USER: ${{ secrets.USER }}
        PASS: ${{ secrets.PASS }}
        REPO: ${{ secrets.REPO }}
      run: |
        ssh $USER@$HOST 'mkdir -p ~/app && rm -rf ~/app/*'
        scp -r . $USER@$HOST:~/app
        ssh $USER@$HOST 'cd ~/app && git pull $REPO'
        ssh $USER@$HOST 'cd ~/app && npm install && npm run build'
        ssh $USER@$HOST 'pm2 restart app || pm2 start ~/app/index.js --name app'
    

    这个 workflow 文件会在 master 分支有新的提交时自动触发,执行以下步骤:

    • 检出代码仓库
    • 通过 SSH 连接到 Vultr 云服务器
    • 清空服务器上的项目目录,并将本地代码同步到服务器
    • 拉取最新代码并安装依赖
    • 构建项目
    • 使用 PM2 重启应用程序
  3. 在 GitHub 仓库的 Settings > Secrets 菜单中,添加以下 secrets:

    • HOST: Vultr 云服务器的 IP 地址
    • USER: Vultr 云服务器的登录用户名
    • PASS: Vultr 云服务器的登录密码
    • REPO: 代码仓库的 URL

完成上述配置后,每次将代码推送到 master 分支,GitHub Actions 就会自动触发部署流程,将最新的代码部署到 Vultr 云服务器上。

FAQ

如何将本地代码推送到 GitHub 仓库?

  1. 在本地创建一个项目目录,并将代码放入其中。

  2. 打开终端,进入项目目录,执行以下命令:

    git init git add . git commit -m “Initial commit” git remote add origin https://github.com/your-username/your-repo.git git push -u origin master

    your-usernameyour-repo 替换为你的 GitHub 用户名和仓库名。

如何在 Vultr 上创建云服务器?

  1. 登录 Vultr 控制台,点击”Deploy New Server”按钮。
  2. 选择合适的服务器配置,如操作系统、CPU、内存等。
  3. 点击”Deploy Now”完成创建。
  4. 记下服务器的 IP 地址,这将在后续步骤中使用。

GitHub Actions 配置文件有什么注意事项?

  1. on 字段定义了触发 workflow 的事件,这里我们设置为 push 事件,仅在 master 分支有新的提交时触发。
  2. env 字段定义了环境变量,这里我们使用了 GitHub Secrets 来存储敏感信息,如服务器 IP、用户名和密码。
  3. run 字段定义了在服务器上执行的命令,包括清空项目目录、同步代码、安装依赖、构建项目和重启应用程序。

部署过程中出现错误怎么办?

  1. 检查 GitHub Actions 的执行日志,查看是否有报错信息。
  2. 检查 Vultr 云服务器的状态,确保服务器正常运行并可以通过 SSH 访问。
  3. 检查 GitHub Secrets 中的信息是否正确,尤其是服务器的 IP、用户名和密码。
  4. 检查项目代码是否有问题,如依赖包版本冲突、环境变量设置错误等。
  5. 如果问题无法解决,可以尝试手动登录服务器,查看项目运行情况和错误日志。
正文完