这个开源工具,为我省下了大量的时间!

简介: 此前,我维护的多个 GitHub 项目都需要同时部署 GitHub Pages 和 Gitee Pages 国内镜像站点。

此前,我维护的多个 GitHub 项目都需要同时部署 GitHub Pages 和 Gitee Pages 国内镜像站点。


对于 GitHub,当我们将项目的变更 push 到 GitHub 远程仓库时,会触发 GitHub Pages 的自动化部署,将项目的最新内容更新到 GitHub Pages 站点。如下图所示:


12.png


然而,对于 Gitee,一个头疼的问题是,虽然我们可以利用一些镜像同步脚本或工具(如:git-mirror-action)将 GitHub 项目同步至 Gitee 仓库,但我们却无法自动化部署 Gitee Pages,而必须手动登录 Gitee,并且手动点击更新。


为什么呢??因为,Gitee Pages 自动化部署要收费!99 块钱一年!!如果我们想要在不交钱的情况下实现 Gitee Pages 自动化部署(白嫖?),那么按照此前,只能努力让我们的 Gitee 开源项目变得足够好,得到官方的推荐后,会显示“您的项目为推荐项目,已自动为您开通 Gitee Pages Pro”,这样就可以自动化了。


13.png


插播一个码云官方最新消息,“因业务调整,Gitee Pages Pro 暂时关闭个人用户购买入口,已开通用户的仓库不受影响。GVP 项目和付费企业使用不受影响。” 也就是说,现在想花钱图个省事都不行了。。


然而,对于很多私人博客,或者说开源项目刚创建不久的,通常来说这种项目 stars 数很少,想得到官方的推荐,呵呵,不可能!所以我开发了 Gitee Pages Action 工具,无须人工,即可实现 Gitee Pages 的自动化部署!只需要在我们的 GitHub 项目 Settings 页面下配置 keys,然后在 .github/workflows/ 下创建一个工作流,引入一些配置参数即可。


抛一下开源工具的地址,点击阅读也能直达,这个开源工具将会持续维护,欢迎关注!

https://github.com/yanglbme/gitee-pages-action


下面我为大家详细讲一下工具的入参,以及具体如何使用,若有使用上的问题,也欢迎随时反馈。


入参


参数 描述 是否必传 默认值
gitee-username Gitee 用户名 是 -
gitee-password Gitee 密码 是 -
gitee-repo Gitee 仓库(严格区分大小写) 是 -
branch 要部署的分支 否 master
directory 要部署的分支上的目录 否 ''
https 是否强制使用 HTTPS 否 true


示例


以下是一个完整的使用示例。


在你的 GitHub 仓库 .github/workflows/ 文件夹下创建一个 sync.yml 文件,内容如下:


name: Syncon:  push:    branches: [ master ]jobs:  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@master      with:          # 注意替换为你的 Gitee 用户名          gitee-username: yanglbme          # 注意在 Settings->Secrets 配置 GITEE_PASSWORD          gitee-password: ${{ secrets.GITEE_PASSWORD }}          # 注意替换为你的 Gitee 仓库,仓库名严格区分大小写,请准确填写,否则会出错          gitee-repo: doocs/advanced-java


先使用 wearerequired/git-mirror-action 将 GitHub 仓库同步到 Gitee 仓库,再使用 yanglbme/gitee-pages-action 实现 Gitee Pages 的自动部署。


请确保在 GitHub 项目的 Settings -> Secrets 路径下配置好 GITEE_RSA_PRIVATE_KEY 以及 GITEE_PASSWORD 两个密钥。其中:


•GITEE_RSA_PRIVATE_KEY: 存放你的 id_rsa 私钥。

•GITEE_PASSWORD: 存放你的 Gitee 账户密码。


如果一切配置正常,并成功触发 Gitee Pages Action ,我们可能会收到一封来自 Gitee 的告警邮件/站内信。放心,这是 GitHub Action 程序帮我们登录到 Gitee 官网,并为我们点击了项目的部署按钮。


FAQ


问题 1:遇到短信验证码导致无法自动部署,怎么解决?


因为 Gitee Pages Action 使用的是 GitHub 自家的服务器(美国),在这种情况下,当 Action 自动帮我们登录 Gitee 的时候,会触发 Gitee 帐号异常登录告警,提示用户在非正常的 IP 地址登录了 Gitee,需要输入验证码。


解决方案是:关注「码云 Gitee」 微信公众号,绑定个人微信到码云帐号。这样 Action 在登录的过程中,Gitee 就不会下发短信验证码,而是通过「码云 Gitee」公众号给我们发送一个登录通知,Action 就能成功登录了。


14.png


问题 2:报 deploy error occurred, message: 'NoneType' object has no attribute 'group' 错误,怎么办?


报了这个错误,说明 Action 已经成功帮我们登录 Gitee 帐号了,但在访问 Gitee Repo 的过程中出现问题。


这种情况,一般是 Gitee Pages Action 的参数配置错误导致,请仔细检查你的配置信息。


注意:gitee-repo 参数严格区分大小写,请准确填写,比如 doocs/advanced-java,当你写成 doocs/Advanced-java 的时候,是访问不到的,不信你可以试试访问:https://gitee.com/Doocs/Advanced-java


谁在使用?


目前,蚂蚁金服数据可视化团队、有赞技术团队、还有 Doocs 开源社区等多个开源项目都在使用 Gitee Pages Action,所以,我也把它推荐给你。感兴趣的朋友,也可以 star 关注一波!


15.png

目录
相关文章
|
存储 人工智能 移动开发
7zip 命令使用手册
本文中介绍的命令使用方式在所有安装了7zip的系统平台上使用方式一致。 在 Windows 系统上,你可以直接去观官网下载 7zip 安装包根据提示进行安装,但是若要使用7z命令,一定需要手动将 7zip 的安装目录添加到系统的Path环境变量。 在Linux上,请确包你使用的是 原版7zip 而非 p7zip,在Linux系统上的安装可以参考我的博文《如何在 Linux 系统中安装和使用 7zip》(实际上,本文节选自该博文)
2396 0
|
3月前
|
人工智能 安全 搜索推荐
QoderWork完全指南:从入门到精通,打造全能AI工作搭档+常见问题与避坑指南
QoderWork作为一款可执行的AI工作助手,凭借本地安全、自主执行、能力可扩展、持续学习的核心优势,能快速从“AI实习生”成长为适配个人与团队的全能工作搭档。从安装配置到基础功能使用,从自定义技能到MCP扩展,从高效指令到安全管理,掌握全流程操作后,可彻底解放双手,将重复工作交给AI,专注于核心创意与决策。无论是个人办公、团队协作还是企业级工作流,QoderWork都能提供灵活、安全、高效的AI辅助方案,成为提升工作效率的核心工具。持续使用并沉淀自定义技能,让AI真正融入你的工作流,实现工作效率的指数级提升。
652 0
|
10月前
|
存储 运维 监控
毅硕HPC | Lustre文件系统在HPC集群中的部署实战
Lustre作为一种开源的、分布式并行文件系统,凭借其卓越的可扩展性和极高的I/O吞吐量,成为了全球Top 500超算中心的首选。Lustre不仅仅是一个存储系统,它是连接计算资源与科学数据的纽带。
872 0
|
6月前
|
机器学习/深度学习 算法 机器人
逐际动力开源 FluxVLA Engine:专为具身智能打造的标准化VLA工程底座
逐际动力开源FluxVLA Engine——面向具身智能的标准化VLA工程底座。它以统一配置、标准接口、模块解耦、加速部署为核心,解决数据碎片化、代码高耦合、仿真-真机迁移难三大瓶颈,支持VLM/VLA全栈任务,开箱即用部署于UR、ALOHA、TRON2等多平台。
770 0
逐际动力开源 FluxVLA Engine:专为具身智能打造的标准化VLA工程底座
|
10月前
|
运维 监控 安全
可观测不等于可偷窥:运维如何在不泄露 PII 的前提下保持可追踪性?
可观测不等于可偷窥:运维如何在不泄露 PII 的前提下保持可追踪性?
400 4
|
11月前
|
运维 监控 Java
分布式事务新方案:Saga 与 TCC 在 Java 生态的融合实践
本文深入探讨Saga与TCC两种分布式事务模式在Java生态中的原理、实现及融合实践,结合Seata等框架,分析其在微服务架构下的应用策略、性能优化与监控运维,助力构建高效稳定的分布式事务解决方案。
1077 1
|
人工智能 关系型数据库 分布式数据库
PolarDB Supabase 助力快速构建现代应用
简介:本文介绍了在AI时代背景下,如何通过阿里云瑶池推出的全托管Supabase服务快速构建现代应用。该服务基于开源Supabase与PolarDB-PG数据库,提供一站式后端解决方案,涵盖实时数据库、身份认证、文件存储及AI能力,助力开发者高效迭代业务,降低运维复杂度。适用于协作类应用、SaaS平台、移动开发等多种场景。
|
开发工具 芯片 开发者
鸿蒙Flutter实战:12-使用模拟器开发调试
本文介绍了如何在 M 系列芯片的 Mac 电脑上使用模拟器进行鸿蒙 Flutter 开发和调试。主要内容包括:创建 Flutter 项目、签名、创建模拟器、运行 Flutter 项目以及常见问题的解决方法。适用于希望在鸿蒙系统上开发 Flutter 应用的开发者。
916 2
鸿蒙Flutter实战:12-使用模拟器开发调试
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
1219 3