如何使用 GitHub Actions 在 VPS 上设置网站的持续部署
不管它是私有还是公共存储库
先决条件
以下是本教程所需的先决条件:
- GitHub帐户
- 任何虚拟专用服务器都可以,不过我更喜欢 DigitalOcean,因为它上手简单。如果你能用我的推荐链接在 DigitalOcean 注册,就能获得 100 美元的信用额度,可在 60 天内使用。
我们将在本教程中介绍一些内容。
- 在远程 VPS 上生成 ssh 密钥
- 将生成的公钥添加到授权密钥中
- 创建 GitHub 密钥
- 配置 GitHub 操作以自动部署您的私有/公共存储库
步骤 1 - 打开终端,将 ssh 添加到您的 VPS
$ ssh user@hostname
$ cd ~/.ssh
第 2 步 - 生成 ssh 密钥
$ ssh-keygen -t rsa -b 4096 -C "test@example.com"
- 该电子邮件是您在 GitHub 帐户上使用的电子邮件
步骤 3:反复按 Enter 键设置默认名称(不设置密码)
- 如果您在终端中执行“ls”,您将看到这两个文件(id_rsa 和 id_rsa.pub)
步骤 4 - 将公钥添加到授权密钥
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 注意:我们使用 >> 以便将 id_rsa.pub 内容附加到 authorized_keys 文件内容的末尾,而不是覆盖 authorized_keys 中的内容。
步骤 5 - 创建 GitHub 机密
$ cat ~/.ssh/id_rsa
- 在您的终端运行上述命令选择输出内容并复制到您的剪贴板。
转到您想要配置的 GitHub 存储库,单击设置选项卡,然后在选项菜单中单击并添加以下机密:
-
HOST:将密钥设置为您的主机名或 IP 地址。
-
用户名:将密钥设置为您用于通过 SSH 进入 VPS 的用户名。
-
SSHKEY:将密钥设置为您从上面的命令复制的内容。
-
PORT:将密钥设置为 22
如果您还在这里,恭喜!我们快完成了!
完成上述步骤后,我们只剩下一个步骤,即我们的 .github/workflows/deploy.yml 文件。
步骤 6 - 配置 GitHub 操作以自动部署您的私有/公共存储库
假设您已在计算机上本地克隆了 repo,请继续创建 .github/workflows 文件夹,并在其中创建 deploy.yml 文件
- 将以下内容添加到 deploy.yml 文件
name: Deploy
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Copy repository contents via scp
uses: appleboy/scp-action@master
env:
HOST: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
PORT: ${{ secrets.PORT }}
KEY: ${{ secrets.SSHKEY }}
with:
source: "."
target: "/var/www/mywebsite"
- name: Executing remote command
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
USERNAME: ${{ secrets.USERNAME }}
PORT: ${{ secrets.PORT }}
KEY: ${{ secrets.SSHKEY }}
script: ls
请注意,我的远程命令只是“ ls ”。如果您尝试自动部署 React App 或 Vue App,则可以将脚本命令设置为 Build 命令。
关键时刻!
提交 deploy.yml 更改,并推送到您的存储库。
它应该能够顺利构建并推送到 VPS。
$ git add .
$ git commit -m "deploy"
$ git push origin master
如果你前往你的 GitHub 仓库并点击操作菜单,你会看到这个
感谢您的阅读!
欢迎提出您的意见
文章来源:https://dev.to/knowbee/how-to-setup-continuous-deployment-of-a-website-on-a-vps-using-github-actions-54im