mirror of
https://github.com/ClovertaTheTrilobita/SanYeCao-blog.git
synced 2026-04-01 17:50:13 +00:00
3 KiB
3 KiB
Github Actions自动部署
Note
此项目的Github Actions监听
blog-content分支中src/blog和src/friends两个目录的git push操作,两个目录有更新则触发构建流水线。
Important
需要使用这个功能请自行Fork一份代码到自己的仓库,在你自己的仓库才能跑流水线。
零、新建一个分支
在master的基础上新建一个名为blog-content的分支,以后新的文章请推送到这个分支里。
一、设置SSH密钥
在仓库的Settings > Secrets and variables > Actions中,添加三个Repository secrets,分别为:
| 密钥名 | 用途 |
|---|---|
DEPLOY_KNOWN_HOSTS |
用于让Gihub CI识别目标服务器 |
DEPLOY_SSH_KEY |
用于登录目标服务器 |
ENV_FILE |
私有环境变量 |
1.DEPLOY_KNOWN_HOSTS
在终端执行命令
ssh-keyscan -H <你的服务器IP>
并将生成的所有内容放入该环境变量中
2.DEPLOY_SSH_KEY
推荐在你本地新生成一把专门用于 GitHub 部署的 key
本地或服务器终端执行:
ssh-keygen -t ed25519 -C "github-actions-deploy" -f ~/.ssh/github_actions_deploy
执行后会得到两个文件:
~/.ssh/github_actions_deploy
~/.ssh/github_actions_deploy.pub
github_actions_deploy→ 私钥,填到DEPLOY_SSH_KEY
github_actions_deploy.pub→ 公钥,要加到服务器上
① 设置Github私钥
查看私钥内容:
cat ~/.ssh/github_actions_deploy
把完整输出复制到变量值中。
② 设置服务器公钥
随后,登录服务器终端,将~/.ssh/github_actions_deploy.pub中的内容添加到服务器的~/.ssh/authorized_keys,以实现Github CI访问服务器。
3.ENV_FILE
这个变量用于生成构建所需的.env文件。
如果你已经设置好.env,它里面应该有如下内容
GITHUB_TOKEN=
GISCUS_REPO_OWNER=
GISCUS_REPO_NAME=
GISCUS_CATEGORY_ID=
GISCUS_DATA_REPO_ID=
如果你还没配置好或不知道这些是干什么的,请详见:EnvVariables.md
直接把.env中的所有内容复制到变量值中。
二、设置环境变量
同样,在Settings > Secrets and variables > Actions中,添加四个Repository variables,分别为:
| 密钥名 | 内容 |
|---|---|
DEPLOY_HOST |
服务器IP地址,如192.168.1.1 |
DEPLOY_PATH |
在服务器上的部署路径,如/www/wwwroot/blog.cloverta.top |
DEPLOY_PORT |
服务器SSH端口,一般是22 |
DEPLOY_USER |
登录用户,例如root |