From 29cba0be2d47978df553f44ceec403ae073f0e54 Mon Sep 17 00:00:00 2001 From: Lorenzune Date: Mon, 15 Jun 2026 02:07:40 +0200 Subject: [PATCH 1/2] Restore client release workflow --- .github/workflows/build-release.yml | 82 +++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/build-release.yml diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml new file mode 100644 index 0000000..dee0f3a --- /dev/null +++ b/.github/workflows/build-release.yml @@ -0,0 +1,82 @@ +name: Build & Publish Client Release + +on: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: write + +env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' + NITRO_JSON_MODE: 'legacy' + +jobs: + build-release: + runs-on: ubuntu-latest + + steps: + - name: Checkout client + uses: actions/checkout@v4 + with: + path: Nitro-V3 + + - name: Checkout renderer + uses: actions/checkout@v4 + with: + repository: duckethotel/ducket-render + ref: main + path: Nitro_Render_V3 + token: ${{ secrets.DUCKET_REPO_TOKEN }} + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + cache: yarn + cache-dependency-path: | + Nitro-V3/yarn.lock + Nitro_Render_V3/yarn.lock + + - name: Install renderer dependencies + working-directory: Nitro_Render_V3 + run: yarn install --frozen-lockfile + + - name: Link renderer + working-directory: Nitro_Render_V3 + run: yarn link + + - name: Install client dependencies + working-directory: Nitro-V3 + run: yarn install --frozen-lockfile + + - name: Link renderer into client + working-directory: Nitro-V3 + run: yarn link "@nitrots/nitro-renderer" + + - name: Build client + working-directory: Nitro-V3 + run: yarn build + + - name: Read package version + id: version + working-directory: Nitro-V3 + run: | + VERSION=$(node -p "require('./package.json').version") + SHORT_SHA=${GITHUB_SHA::7} + echo "version=$VERSION" >> "$GITHUB_OUTPUT" + echo "short_sha=$SHORT_SHA" >> "$GITHUB_OUTPUT" + + - name: Package dist + working-directory: Nitro-V3 + run: | + zip -r "../ducket-client-dist-${{ steps.version.outputs.short_sha }}.zip" dist + + - name: Publish release + uses: softprops/action-gh-release@v2 + with: + tag_name: client-v${{ steps.version.outputs.version }}-${{ steps.version.outputs.short_sha }} + name: Ducket Client ${{ steps.version.outputs.version }} (${{ steps.version.outputs.short_sha }}) + generate_release_notes: true + files: ducket-client-dist-${{ steps.version.outputs.short_sha }}.zip From dd1b8b76138427e1c0d7107803983f0950a94603 Mon Sep 17 00:00:00 2001 From: Lorenzune Date: Mon, 15 Jun 2026 02:20:31 +0200 Subject: [PATCH 2/2] Fix release bundle chunk loading --- .github/workflows/build-release.yml | 1 + vite.config.mjs | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index dee0f3a..5909da0 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -10,6 +10,7 @@ permissions: env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' + NITRO_SINGLE_BUNDLE: '1' NITRO_JSON_MODE: 'legacy' jobs: diff --git a/vite.config.mjs b/vite.config.mjs index a5824be..0dfd049 100644 --- a/vite.config.mjs +++ b/vite.config.mjs @@ -93,7 +93,9 @@ const resolveJsonMode = () => }; const nitroJsonMode = resolveJsonMode(); +const nitroSingleBundle = process.env.NITRO_SINGLE_BUNDLE === '1'; process.stdout.write(`[vite] __NITRO_JSON_MODE__ = ${ nitroJsonMode }\n`); +process.stdout.write(`[vite] NITRO_SINGLE_BUNDLE = ${ nitroSingleBundle ? '1' : '0' }\n`); export default defineConfig({ base: process.env.VITE_BASE || './', @@ -165,7 +167,11 @@ export default defineConfig({ checks: { pluginTimings: false }, - output: { + output: nitroSingleBundle ? { + assetFileNames: 'src/assets/[name]-[hash].[ext]', + entryFileNames: 'assets/app.js', + inlineDynamicImports: true + } : { assetFileNames: 'src/assets/[name]-[hash].[ext]', // Granular chunking: split the monolithic vendor / nitro-renderer // bundles into smaller chunks so the browser can fetch them in