Gitea Actions(2)使用Actions自动更新网站
前言
不少小伙伴跟我一样部署的静态网站,更新文章比较麻烦,需要手动 build 和 发布,既繁琐又浪费很多时间。部署 Gitea Actions 后,可以实现自动 build 和 发布网站。本文以我的网站为例,它使用 Docusaurus 构建,如果你使用 hugo、mkdocs、...也是相同的操作。
创建 Actions 脚本
打开你的 Git 仓库,添加文件: 仓库根目录/.gitea/workflows/demo.yaml
name: beta zxzsk.com
on: [push]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: https://gitea.com/actions/checkout@v4
- name: 删除目录 docs/未公开
run: rm -rf docs/未公开
- name: 安装依赖
run: npm install
- name: 构建项目
run: npm run build
- name: 安装 rsync 命令
run: |
apt update
apt install rsync -y
- name: 部署到远程服务器
env:
ACTION_KEY: ${{ secrets.ACTION_KEY }}
BETA_USER: ubuntu
BETA_HOST: 192.168.10.102
BETA_PATH: /opt/1panel/apps/openresty/openresty/www/sites/beta/index/
run: |
mkdir -p ~/.ssh
echo "$ACTION_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
rsync -az -e "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no" \
build/ ${{BETA_USER}}@${{BETA_HOST}}:${{BETA_PATH}}
简单解释这个 workflow:
- 触发条件:git push 发生时
- 执行环境:docker 容器
ubuntu-latest
- 检出代码:获取一个脚本
https://gitea.com/actions/checkout@v4
,作用是克隆当前仓库到容器中 - 删除不想公开的内容
- 安装 npm 依赖包(依赖包在
.gitignore
中) - build 生成网站
- rsync 更新网站
关于环境变量
如何添加私钥
复制私钥,添加到 Gitea 网站设置中。添加成功后管理员不可见,注重隐私保护。

如何添加普通变量
在 Gitea 网站中添加,添加成功后管理员可见。

yaml 的可见性
如果是公开仓库,谁都能看见你的 yaml 文件。不能暴露的信息,比如一些 KEY 、Token 可以使用环境变量导入。
使用 scp 和 rsync
第一步,你生成一对 ssh 秘钥。第二步,把 私钥
添加到 Gitea 网站个人设置中,使用环境变量导入。第三步,把 公钥
粘贴到远程服务器。第四步,使用 scp 或者 rsync 命令,并发送文件。
若不了解 ssh 命令可以站内搜索 “ssh”。yaml 配置则可参考上文内容。
隐私保护
yaml 明文 < Actions 变量 < Actions 秘钥
灵活设置变量,保护你的隐私。
测试工作流
假设此刻需要更新一篇文章到我的网站,那我需要:
-
编辑文章
项目/docs/**/使用Actions自动更新网站.md
-
push 到我的 Gitea 服务器
git add .
git commit -m "更新了一篇文章:使用Actions自动更新网站"
git push -
观察工作流是否正常执行
执行成功

刷新你的网站就可以发现最新内容啦。