目录
前言
GitHub 和 Vultr 是两个非常流行的云服务平台,前者提供代码托管和版本控制服务,后者提供高性能的云服务器。结合这两者,我们可以实现应用程序的持续集成和部署,大大提高开发效率和稳定性。
本文将详细介绍如何使用 GitHub 和 Vultr 搭建持续部署(CI/CD)的整个流程,帮助读者快速上手并应用到实际项目中。
环境准备
注册 GitHub 账号
首先,需要注册一个 GitHub 账号。GitHub 是全球最大的代码托管平台,提供代码仓库、版本控制、issue 跟踪等功能,是开发者必备的工具之一。
访问 GitHub 官网并点击”Sign up”按钮,根据提示完成注册即可。
注册 Vultr 账号
其次,需要注册一个 Vultr 账号。Vultr 是一家提供高性能云服务器的公司,拥有全球数十个数据中心,是非常受欢迎的云服务提供商之一。
访问 Vultr 官网并点击”Sign Up”按钮,根据提示完成注册。
代码托管与提交
创建 GitHub 仓库
登录 GitHub 后,点击右上角的”+”图标,选择”New repository”创建一个新的代码仓库。在仓库设置页面,填写仓库名称、描述,选择是否公开,然后点击”Create repository”完成创建。
将代码推送到 GitHub
将本地代码 commit 并 push 到 GitHub 仓库。具体操作如下:
-
在本地创建一个项目目录,并将代码放入其中。
-
打开终端,进入项目目录,执行以下命令:
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-username
和your-repo
替换为你的 GitHub 用户名和仓库名。
至此,你的代码已经成功推送到 GitHub 仓库了。
持续集成与部署
配置 Vultr 云服务器
登录 Vultr 控制台,点击”Deploy New Server”按钮,选择合适的服务器配置,如操作系统、CPU、内存等,然后点击”Deploy Now”完成创建。
创建完成后,记下服务器的 IP 地址,这将在后续步骤中使用。
设置 GitHub Actions 自动化部署
GitHub Actions 是 GitHub 提供的一个强大的持续集成和部署工具。我们可以利用它来自动化部署代码到 Vultr 云服务器。
-
在 GitHub 仓库根目录创建
.github/workflows
目录。 -
在该目录下创建一个 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 重启应用程序
-
在 GitHub 仓库的
Settings
>Secrets
菜单中,添加以下 secrets:HOST
: Vultr 云服务器的 IP 地址USER
: Vultr 云服务器的登录用户名PASS
: Vultr 云服务器的登录密码REPO
: 代码仓库的 URL
完成上述配置后,每次将代码推送到 master
分支,GitHub Actions 就会自动触发部署流程,将最新的代码部署到 Vultr 云服务器上。
FAQ
如何将本地代码推送到 GitHub 仓库?
-
在本地创建一个项目目录,并将代码放入其中。
-
打开终端,进入项目目录,执行以下命令:
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-username
和your-repo
替换为你的 GitHub 用户名和仓库名。
如何在 Vultr 上创建云服务器?
- 登录 Vultr 控制台,点击”Deploy New Server”按钮。
- 选择合适的服务器配置,如操作系统、CPU、内存等。
- 点击”Deploy Now”完成创建。
- 记下服务器的 IP 地址,这将在后续步骤中使用。
GitHub Actions 配置文件有什么注意事项?
on
字段定义了触发 workflow 的事件,这里我们设置为push
事件,仅在master
分支有新的提交时触发。env
字段定义了环境变量,这里我们使用了 GitHub Secrets 来存储敏感信息,如服务器 IP、用户名和密码。run
字段定义了在服务器上执行的命令,包括清空项目目录、同步代码、安装依赖、构建项目和重启应用程序。
部署过程中出现错误怎么办?
- 检查 GitHub Actions 的执行日志,查看是否有报错信息。
- 检查 Vultr 云服务器的状态,确保服务器正常运行并可以通过 SSH 访问。
- 检查 GitHub Secrets 中的信息是否正确,尤其是服务器的 IP、用户名和密码。
- 检查项目代码是否有问题,如依赖包版本冲突、环境变量设置错误等。
- 如果问题无法解决,可以尝试手动登录服务器,查看项目运行情况和错误日志。