Переглянути джерело

修复 FCM 服务配置并发布 0.2.17

LSamien 2 місяців тому
батько
коміт
7966729f8c
7 змінених файлів з 33 додано та 13 видалено
  1. 1 1
      README.md
  2. 3 0
      bin/hermes-yaoyao.mjs
  3. 6 6
      docs/agent-install.md
  4. 2 2
      package-lock.json
  5. 1 1
      package.json
  6. 3 3
      release.json
  7. 17 0
      tests/serviceCli.test.ts

+ 1 - 1
README.md

@@ -78,7 +78,7 @@ ID 和包名。浏览器只提交路径和公开元数据;8800 本地校验 RS
 插件安装接口安装。默认源为
 `https://git.samien.cn/samien/hermes-yaoyao.git#hermes-plugins/yaoyao`。
 
-当前发布版本:**Git `v0.2.16` / 夭夭 Web `0.2.16` / Hermes Dashboard 插件 `1.7.3`**。版本组合由仓库根目录的 `release.json` 唯一声明,并由 `npm run release:verify` 校验。
+当前发布版本:**Git `v0.2.17` / 夭夭 Web `0.2.17` / Hermes Dashboard 插件 `1.7.3`**。版本组合由仓库根目录的 `release.json` 唯一声明,并由 `npm run release:verify` 校验。
 
 需要由自动化 Agent 部署或升级时,请直接使用 [Agent 安装手册](docs/agent-install.md)。其中包含固定版本校验、备份、同步、单一 Dashboard 重载与验证步骤。
 

+ 3 - 0
bin/hermes-yaoyao.mjs

@@ -52,6 +52,9 @@ function environment(env = process.env) {
     'HERMES_YAOYAO_APNS_KEY_ID',
     'HERMES_YAOYAO_APNS_TEAM_ID',
     'HERMES_YAOYAO_APNS_TOPIC',
+    'HERMES_YAOYAO_FCM_SERVICE_ACCOUNT_FILE',
+    'HERMES_YAOYAO_FCM_PROJECT_ID',
+    'HERMES_YAOYAO_FCM_PACKAGE_NAME',
     'HERMES_YAOYAO_SERVICE_ROOT',
   ]
   return Object.fromEntries(allowed.flatMap(key => env[key] ? [[key, env[key]]] : []))

+ 6 - 6
docs/agent-install.md

@@ -6,8 +6,8 @@
 
 | 项目 | 版本 | 校验位置 |
 | --- | --- | --- |
-| Git 发布标签 | `v0.2.16` | `release.json` 的 `gitTag` 与 `git describe --tags --exact-match HEAD` |
-| 夭夭 Web | `0.2.16` | `release.json` 与 `package.json` 的 `version` |
+| Git 发布标签 | `v0.2.17` | `release.json` 的 `gitTag` 与 `git describe --tags --exact-match HEAD` |
+| 夭夭 Web | `0.2.17` | `release.json` 与 `package.json` 的 `version` |
 | Hermes Dashboard 插件 | `1.7.3` | `hermes-plugins/yaoyao/dashboard/manifest.json` 的 `version` |
 
 以下步骤以仓库根目录为工作目录。不要使用浮动分支替代发布标签。
@@ -78,12 +78,12 @@ curl --fail --silent --show-error http://127.0.0.1:9119/api/auth/providers
 ## 1. 获取并校验指定发布版本
 
 ```bash
-RELEASE_VERSION=v0.2.16
+RELEASE_VERSION=v0.2.17
 git fetch --tags
 git checkout "$RELEASE_VERSION"
 
 test "$(git describe --tags --exact-match HEAD)" = "$RELEASE_VERSION"
-test "$(node -p \"require('./package.json').version\")" = "0.2.16"
+test "$(node -p \"require('./package.json').version\")" = "0.2.17"
 test "$(node -e \"console.log(require('./hermes-plugins/yaoyao/dashboard/manifest.json').version)\")" = "1.7.3"
 npm run release:verify
 ```
@@ -224,7 +224,7 @@ launchctl load -w ~/Library/LaunchAgents/com.samien.hermes-yaoyao.plist
 
 ### 推送状态 v2 与 Android FCM
 
-Web `0.2.16` 会在首次写入时把 `$HERMES_YAOYAO_HOME/push/state.json` 从 schema 1
+Web `0.2.16` 及后续版本会在首次写入时把 `$HERMES_YAOYAO_HOME/push/state.json` 从 schema 1
 迁移为 schema 2;已有 APNs 安装、待发送队列、团队订阅、事件去重、游标和聊天恢复
 任务都会保留。旧版 Web 不能直接读取 schema 2,因此升级前必须备份整个 `push/`
 目录;若回滚 Web,也要同步恢复这份升级前备份,不能只切换 `current` 符号链接。
@@ -247,7 +247,7 @@ Git、发布目录、命令输出或日志。配置后检查系统管理中的 A
 
 ## 7. 通过受管服务进行配套升级
 
-首次按第 6 步安装 Web `0.2.16` 后,可在左下角 Agent 菜单打开“系统更新”。
+首次按第 6 步安装 Web `0.2.17` 后,可在左下角 Agent 菜单打开“系统更新”。
 检查更新只读取固定的 `HERMES_YAOYAO_RELEASE_SOURCE`,并锁定最新 `vX.Y.Z`
 标签解析到的 Git 提交;执行升级前仍会检查插件持久目录是否安全。
 

+ 2 - 2
package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "hermes-yaoyao",
-  "version": "0.2.16",
+  "version": "0.2.17",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "hermes-yaoyao",
-      "version": "0.2.16",
+      "version": "0.2.17",
       "license": "BSL-1.1",
       "dependencies": {
         "@koa/bodyparser": "^5.0.0",

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "hermes-yaoyao",
-  "version": "0.2.16",
+  "version": "0.2.17",
   "private": true,
   "license": "BSL-1.1",
   "description": "夭夭 Web:直连 Hermes 9119 的聊天、团队、文件库与产物工作台",

+ 3 - 3
release.json

@@ -1,7 +1,7 @@
 {
   "schemaVersion": 1,
-  "releaseVersion": "0.2.16",
-  "webVersion": "0.2.16",
+  "releaseVersion": "0.2.17",
+  "webVersion": "0.2.17",
   "pluginVersion": "1.7.3",
-  "gitTag": "v0.2.16"
+  "gitTag": "v0.2.17"
 }

+ 17 - 0
tests/serviceCli.test.ts

@@ -52,6 +52,23 @@ describe('hermes-yaoyao LaunchAgent plist', () => {
     expect(plist).toContain('<key>HERMES_YAOYAO_APNS_TOPIC</key>')
   })
 
+  it('preserves FCM provider settings in the LaunchAgent', () => {
+    const plist = launchAgentPlist({
+      environment: {
+        HERMES_YAOYAO_FCM_SERVICE_ACCOUNT_FILE: '/Users/test/firebase-service-account.json',
+        HERMES_YAOYAO_FCM_PROJECT_ID: 'yaoyao-test-project',
+        HERMES_YAOYAO_FCM_PACKAGE_NAME: 'cn.samien.yaoyao.hermes',
+      },
+    })
+
+    expect(plist).toContain('<key>HERMES_YAOYAO_FCM_SERVICE_ACCOUNT_FILE</key>')
+    expect(plist).toContain('/Users/test/firebase-service-account.json')
+    expect(plist).toContain('<key>HERMES_YAOYAO_FCM_PROJECT_ID</key>')
+    expect(plist).toContain('yaoyao-test-project')
+    expect(plist).toContain('<key>HERMES_YAOYAO_FCM_PACKAGE_NAME</key>')
+    expect(plist).toContain('cn.samien.yaoyao.hermes')
+  })
+
   it('can point the managed service at the stable current release link', () => {
     const root = join(homedir(), '.local', 'share', 'hermes-yaoyao', 'current')
     const plist = launchAgentPlist({ serviceRoot: root })