← 回到表情作品库

GitHub 公开作品库的部署与更新

网站配置地址: https://stickers.saymagic.cn/ 。源代码与素材仓库: https://github.com/saymagic/cat-sticker-library 。实际发布与域名核对结果记录在本目录的验收报告中。

保存方式

GitHub 仓库保存统一登记、原画、工程、导出图片、检查记录和制作规则。ZIP 保存到 GitHub Releases;相同内容只上传一次,原有18个ZIP路径由deployment/archives.json映射到9个按SHA256命名的文件。路径和哈希全部记录,用户原来的本地文件保留。

公开网页仅构建查看、检索、预览和下载所需的文件。小于50MiB的submission投稿ZIP另存发布副本,直接从独立域名下载,避免日常投稿包依赖GitHub附件网络;完整制作备份从Release下载。全部ZIP仍在Release留有原始哈希副本,不把超过100MiB的文件提交到普通Git,也不将原画和制作日志塞进网页目录。公开页面保留同一套角色、主题、版本及验收规则。

GitHub Pages读取gh-pages分支根目录,使用.nojekyll直接发布已构建的静态文件。main保存完整制作库,两个分支分别保留历史。域名为DNSPod中的stickers CNAME → saymagic.github.io,默认线路,TTL 600。

2026年10月2日首次运行时,GitHub提示“account is locked due to a billing issue”,Actions任务没有启动。因此当前由代理在本地运行同一套完整验收与发布程序;不能将云端运行标为通过。用户在GitHub自行解除账单限制后,后续main更新可自动运行现有工作流,无需更改网站发布方式。公网实测结果见本目录验收报告。

后续发布

每次制作仍先遵守根目录AGENTS.md:创建版本、完成制作、真实验收、登记并刷新。准备发布时运行:

scripts/library.sh check --deep
scripts/library.sh refresh
scripts/library.sh check
python3 scripts/publish_library.py prepare
python3 scripts/publish_library.py build

prepare仅生成ZIP发布清单与deployment/staging/materials-v1/上传副本,不覆盖原文件。后续独立的一批物料可将deployment/config.json中的release_tag改为materials-v2等新标签,已有文件的标签沿用原记录。按清单将新增ZIP和archives.json上传到对应GitHub Release;既有按哈希命名的资产不覆盖。

本地gh已登录时,可以使用gh release create或gh release upload上传;未登录时由创作代理操作已登录的GitHub浏览器Release页面。发布完成后才将本次源码、登记和发布清单提交并push到main。

GitHub Actions使用同一发布程序:检验维护工作流 → 从Release恢复ZIP并校验哈希 → 完整检查锁定文件及ZIP → 生成公开站点 → 更新gh-pages分支。缺少Release资产、登记或验收不合格时发布失败,不能跳过检查。

当前账号Actions被账单状态拦截,提交并push本次main后,由代理运行:

bash scripts/publish_pages.sh

该命令依次运行21项隔离测试、恢复物料、完整生产文件与ZIP校验、构建和发布。源码必须已提交在main,构建记录须与源码提交一致;程序使用独立临时Git索引,仅向gh-pages增加新提交,不切换源码工作区、不覆盖main、不强制推送。推送成功只表示发布分支已更新,仍须验证网站实际可访问。将来Actions恢复时通常不再需要额外本地运行;若云端失败,代理按真实错误处理或使用本地流程,并重新验收公网。

发布后运行python3 scripts/check_public_site.py --report deployment/staging/验收/公网文件检查.json,经默认TLS验证下载全部公开页面、图片和投稿ZIP,逐文件核对哈希及线上build.json中的源码提交。还须实际在浏览器检查整套图片、中文检索、手机宽度和下载,再交付。制作备份使用GitHub附件域名,需可正常访问GitHub的网络;不能把附件域名的网络错误标为下载通过。需要更换域名时先在GitHub Pages绑定新域名,再在DNSPod配置新记录,最后验证DNS与HTTPS。

在另一台电脑恢复完整作品库

git clone git@github.com:saymagic/cat-sticker-library.git
cd cat-sticker-library
python3 scripts/publish_library.py restore
scripts/library.sh check --deep

需要Pillow进行图像检查;本机library.sh优先使用现有图像运行环境,其他电脑可安装deployment/requirements.txt中的依赖。恢复ZIP后,Git检出造成的修改时间差异会按SHA256核对,不修改或重写原完成锁定。

公开内容边界

当前三套图片、原画、工程与投稿包按用户本次指令公开。后续密码、Token、身份资料、授权合同、微信平台凭据放在被Git忽略的专用目录,不能提交到公开库,也不能因为“全部上传”顺带公开新的个人资料。正式平台状态使用已核对且不含个人信息的公开说明作为登记凭据,说明记录原件SHA256和实际结果;原件仍保留在本地私密目录。

收藏存在每个浏览器中,部署到域名不会自动迁移localhost的收藏,也不提供账户同步。它目前是公开静态作品库,制作、登记与上传由本地工具和创作代理负责。

配置依据

GitHub Pages独立域名配置、GitHub文件体积与Releases、GitHub Actions发布Pages。