From efbf998ebba2137de9fd173f44b63f08fd1cb713 Mon Sep 17 00:00:00 2001 From: Disy Date: Mon, 28 Sep 2026 15:24:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20GitHub=20=E5=8F=91=E5=B8=83=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=9A=AE=E8=82=A4=E7=AB=99=E5=AE=8C=E6=95=B4=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-on-tag.yml | 23 +++++++++++++++++ .../app-frontend/src/announcements/catalog.ts | 25 +++++++++++++++++++ .../axolotl/create-update-server-catalog.mjs | 6 ++++- .../create-update-server-catalog.test.mjs | 7 +++++- 4 files changed, 59 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-on-tag.yml b/.github/workflows/build-on-tag.yml index cae5efa..821f421 100644 --- a/.github/workflows/build-on-tag.yml +++ b/.github/workflows/build-on-tag.yml @@ -351,6 +351,29 @@ jobs: release-check/update-server-catalog.json node scripts/axolotl/create-update-server-catalog.test.mjs + - name: Build complete skin-site update package + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + version="${GITHUB_REF_NAME#v}" + bundle_root="release-check/skin-site-update" + bundle_name="Starlight_Launcher_${version}_skin-site-update.zip" + + mkdir -p "${bundle_root}/files" + gh release download "${GITHUB_REF_NAME}" --dir "${bundle_root}/files" + find "${bundle_root}/files" -maxdepth 1 -type f \ + \( -name 'latest.json' -o -name '*_skin-site-update.zip' \) -delete + + cp release-check/latest.json "${bundle_root}/latest.json" + cp release-check/update-server-catalog.json "${bundle_root}/update-server-catalog.json" + cp release-check/release.json "${bundle_root}/release.json" + + ( + cd "${bundle_root}" + zip -r -9 "../${bundle_name}" latest.json update-server-catalog.json release.json files + ) + gh release upload "${GITHUB_REF_NAME}" "release-check/${bundle_name}" --clobber + - name: Notify Update Server to publish release assets if: ${{ env.UPDATE_SERVER_URL != '' && env.UPDATE_SERVER_WEBHOOK_SECRET != '' }} env: diff --git a/apps/app-frontend/src/announcements/catalog.ts b/apps/app-frontend/src/announcements/catalog.ts index db9fdb3..7cb1286 100644 --- a/apps/app-frontend/src/announcements/catalog.ts +++ b/apps/app-frontend/src/announcements/catalog.ts @@ -32,6 +32,31 @@ export const ANNOUNCEMENT_CHANGE_TYPES: readonly AnnouncementChangeType[] = [ ] export const launcherAnnouncements: readonly LauncherAnnouncement[] = [ + { + id: 'launcher-1.0.1-beta2', + version: '1.0.1-beta2', + publishedAt: '2026-09-28', + title: { + 'en-US': 'Starlight Launcher 1.0.1-beta2', + 'zh-CN': 'Starlight Launcher 1.0.1-beta2', + }, + changes: { + added: [ + { + 'en-US': + 'GitHub releases now include one complete update package for publishing to the StarLight skin site.', + 'zh-CN': 'GitHub 发布现会生成一个可直接发布到 StarLight 皮肤站的完整更新包。', + }, + ], + fixed: [ + { + 'en-US': + 'Improved the reliability of live logs and database switching.', + 'zh-CN': '提高实时日志与数据库切换的可靠性。', + }, + ], + }, + }, { id: 'launcher-1.0.1-beta1', version: '1.0.1-beta1', diff --git a/scripts/axolotl/create-update-server-catalog.mjs b/scripts/axolotl/create-update-server-catalog.mjs index d64bc6e..6d676f8 100644 --- a/scripts/axolotl/create-update-server-catalog.mjs +++ b/scripts/axolotl/create-update-server-catalog.mjs @@ -21,6 +21,10 @@ function updaterTargets(filename) { return null } +function isSkinSiteUpdateBundle(filename) { + return filename.endsWith('_skin-site-update.zip') +} + function describe(filename) { const targets = updaterTargets(filename) if (targets) { @@ -69,7 +73,7 @@ function digest(asset) { } const assets = release.assets - .filter((asset) => asset.name !== 'latest.json') + .filter((asset) => asset.name !== 'latest.json' && !isSkinSiteUpdateBundle(asset.name)) .map((asset) => ({ filename: asset.name, size: asset.size, diff --git a/scripts/axolotl/create-update-server-catalog.test.mjs b/scripts/axolotl/create-update-server-catalog.test.mjs index 7bae541..79c6bfd 100644 --- a/scripts/axolotl/create-update-server-catalog.test.mjs +++ b/scripts/axolotl/create-update-server-catalog.test.mjs @@ -37,6 +37,7 @@ const files = [ 'Axolotl_Launcher_1.9.5-beta.1_x64_nsis-setup.exe', 'Axolotl_Launcher_1.9.5-beta.1_x64_nsis-setup.exe.sig', 'Axolotl_Launcher_1.9.5-beta.1_x64_portable.zip', + 'Starlight_Launcher_1.9.5-beta.1_skin-site-update.zip', ] try { @@ -59,7 +60,11 @@ try { assert.equal(result.status, 0, result.stderr) const catalog = JSON.parse(fs.readFileSync(output, 'utf8')) assert.equal(catalog.version, '1.9.5-beta.1') - assert.equal(catalog.files.length, files.length) + assert.equal(catalog.files.length, files.length - 1) + assert.equal( + catalog.files.some((artifact) => artifact.filename.endsWith('_skin-site-update.zip')), + false, + ) assert.deepEqual( catalog.artifacts.find((artifact) => artifact.filename.endsWith('_amd64.AppImage.tar.gz')) .targetPlatforms,