由于 Gitee Pages 的访问速度很快,很多朋友会选择 Gitee Pages 部署项目(如:个人博客、开源项目国内镜像站点)。但是它不像 GitHub Pages 那样,一提交代码就能自动更新 Pages,因为 Gitee 的自动部署属于 Gitee Pages Pro 的服务。
为了实现 Gitee Pages 的自动部署,我用了近百行 Python 代码开发了 Gitee Pages Action[1] ,只需要在 GitHub 项目的 Settings 页面下配置 keys,然后在 .github/workflows/
下创建一个工作流,引入一些配置参数即可。欢迎体验,若有使用上的问题,也欢迎随时在 Issues[2] 反馈。
开源地址:https://github.com/yanglbme/gitee-pages-action
注:首次需要手动登录 Gitee ,点击“启动”进行 Gitee Pages 服务的部署。
入参
参数 | 描述 |
gitee-username |
Gitee 用户名 |
gitee-password |
Gitee 密码 |
gitee-repo |
Gitee 仓库(严格区分大小写) |
branch |
要部署的分支(分支必须存在) |
directory |
要部署的分支上的目录 |
https |
是否强制使用 HTTPS |
示例
以下是一个完整示例。
在你的 GitHub 仓库 .github/workflows/
文件夹下创建一个 .yml
文件,如 sync.yml
,内容如下:
name: Syncon: page_buildjobs: build: runs-on: ubuntu-latest steps: - name: Sync to Gitee uses: wearerequired/git-mirror-action@master env: # 注意在 Settings->Secrets 配置 GITEE_RSA_PRIVATE_KEY SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }} with: # 注意替换为你的 GitHub 源仓库地址 source-repo: git@github.com:doocs/advanced-java.git # 注意替换为你的 Gitee 目标仓库地址 destination-repo: git@gitee.com:Doocs/advanced-java.git - name: Build Gitee Pages uses: yanglbme/gitee-pages-action@main with: # 注意替换为你的 Gitee 用户名 gitee-username: yanglbme # 注意在 Settings->Secrets 配置 GITEE_PASSWORD gitee-password: ${{ secrets.GITEE_PASSWORD }} # 注意替换为你的 Gitee 仓库,仓库名严格区分大小写,请准确填写,否则会出错 gitee-repo: doocs/advanced-java # 要部署的分支,默认是 master,若是其他分支,则需要指定(指定的分支必须存在) branch: main
先使用 wearerequired/git-mirror-action[3] 将 GitHub 仓库同步到 Gitee 仓库,再使用 yanglbme/gitee-pages-action[4] 实现 Gitee Pages 的自动部署。
请确保在 GitHub 项目的 Settings -> Secrets 路径下配置好 GITEE_RSA_PRIVATE_KEY
以及 GITEE_PASSWORD
两个密钥。其中:
•GITEE_RSA_PRIVATE_KEY
: 存放你的 id_rsa
私钥。
•GITEE_PASSWORD
: 存放你的 Gitee 帐号的密码。
如果一切配置正常,并成功触发 Gitee Pages Action[5] ,我们会在 Gitee 公众号收到一条登录通知。这是 GitHub Action 程序帮我们登录到 Gitee 官网,并为我们点击了项目的部署按钮。
注:
1.branch
参数默认是 master
,如果你是部署在 gh-pages
(或者 main
) 分支等等,务必指定 branch: gh-pages
(或者 branch: main
)。
2.branch
对应的分支,必须在仓库中实际存在,请不要随意(不)指定分支,否则可能导致 Gitee Pages 站点出现 404 无法访问的情况。
3.示例中触发 Action 执行的事件设置为 page_build
,你也可以根据实际情况指定为其它的触发事件。请参考 Events that trigger workflows[6]。
谁在使用
目前,蚂蚁金服-数据可视化技术团队、Doocs 开源社区等旗下的多个 GitHub 项目都在使用 Gitee Pages Action。如 antvis/g[7]、antvis/F2[8]、antvis/G6[9]、antvis/L7[10]、doocs/advanced-java[11]、doocs/leetcode[12] 等等。
当然,还有其他不少用户在使用这款工具,推荐你用用,觉得不错的话,记得点个 Star 支持一下噢~
引用链接
[1]
Gitee Pages Action: https://github.com/marketplace/actions/gitee-pages-action
[2]
Issues: https://github.com/yanglbme/gitee-pages-action/issues
[3]
wearerequired/git-mirror-action: https://github.com/wearerequired/git-mirror-action
[4]
yanglbme/gitee-pages-action: https://github.com/yanglbme/gitee-pages-action
[5]
Gitee Pages Action: https://github.com/marketplace/actions/gitee-pages-action
[6]
Events that trigger workflows: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows
[7]
antvis/g: https://github.com/antvis/g
[8]
antvis/F2: https://github.com/antvis/F2
[9]
antvis/G6: https://github.com/antvis/G6
[10]
antvis/L7: https://github.com/antvis/G2Plot
[11]
doocs/advanced-java: https://github.com/doocs/advanced-java
[12]
doocs/leetcode: https://github.com/doocs/leetcode