This is an automated email from the ASF dual-hosted git repository.

yuxia pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss-rust.git


The following commit(s) were added to refs/heads/main by this push:
     new 2ceb512  [doc] Setup workflow for doc publish (#414)
2ceb512 is described below

commit 2ceb5128a24b99227279951640cee03f15e5bf3b
Author: Keith Lee <[email protected]>
AuthorDate: Wed Mar 4 02:08:25 2026 +0000

    [doc] Setup workflow for doc publish (#414)
---
 .asf.yaml                                  |  4 +-
 .github/workflows/deploy_documentation.yml | 81 ++++++++++++++++++++++++++++++
 website/docusaurus.config.ts               | 23 ++++++++-
 website/package.json                       |  1 +
 website/static/CNAME                       |  1 +
 website/static/manifest.json               | 17 +++++++
 6 files changed, 124 insertions(+), 3 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index b71e026..929cc9f 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -19,7 +19,9 @@
 
 github:
   description: "Rust Client for Apache Fluss (Incubating)"
-  homepage: https://fluss.apache.org/
+  homepage: https://clients.fluss.apache.org/
+  ghp_branch: gh-pages
+  ghp_path: /
   features:
     issues: true
     projects: false
diff --git a/.github/workflows/deploy_documentation.yml 
b/.github/workflows/deploy_documentation.yml
new file mode 100644
index 0000000..05d8f1c
--- /dev/null
+++ b/.github/workflows/deploy_documentation.yml
@@ -0,0 +1,81 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Deploy Documentation
+
+on:
+  workflow_dispatch:
+
+permissions:
+  contents: write
+
+jobs:
+  deploy:
+    runs-on: ubuntu-latest
+    defaults:
+      run:
+        working-directory: ./website
+    steps:
+      - uses: actions/checkout@v6
+        with:
+          fetch-depth: 0
+
+      - uses: actions/setup-node@v6
+        with:
+          node-version: 24
+
+      - name: Install dependencies
+        run: npm install
+
+      - name: Build website
+        run: npm run build
+
+      - name: Deploy to gh-pages branch
+        working-directory: .
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        run: |
+          git config user.name "github-actions[bot]"
+          git config user.email "github-actions[bot]@users.noreply.github.com"
+
+          # Create a temporary directory with the built site
+          TMPDIR=$(mktemp -d)
+          cp -r website/build/* "$TMPDIR"
+
+          # Switch to the gh-pages branch (create orphan if it doesn't exist)
+          if git ls-remote --exit-code origin gh-pages; then
+            git fetch origin gh-pages
+            git checkout gh-pages
+          else
+            git checkout --orphan gh-pages
+            git rm -rf .
+          fi
+
+          # Replace contents with the new build
+          git rm -rf . || true
+          git clean -fdx
+          cp -r "$TMPDIR"/* .
+          rm -rf "$TMPDIR"
+
+          # Commit and push
+          git add -A
+          if git diff --cached --quiet; then
+            echo "No changes to deploy."
+          else
+            git commit -m "Deploy website from ${GITHUB_SHA::8}"
+            git push origin gh-pages
+          fi
diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts
index 0d974e9..8c2e173 100644
--- a/website/docusaurus.config.ts
+++ b/website/docusaurus.config.ts
@@ -7,8 +7,8 @@ const config: Config = {
   tagline: 'Rust, Python, and C++ clients for Apache Fluss',
   favicon: 'img/logo/fluss_favicon.svg',
 
-  url: 'https://fluss.apache.org/',
-  baseUrl: '/fluss-rust/',
+  url: 'https://clients.fluss.apache.org',
+  baseUrl: '/',
 
   organizationName: 'apache',
   projectName: 'fluss-rust',
@@ -20,6 +20,25 @@ const config: Config = {
     locales: ['en'],
   },
 
+  plugins: [
+    [
+      '@docusaurus/plugin-pwa',
+      {
+        debug: false,
+        offlineModeActivationStrategies: [
+          'appInstalled',
+          'standalone',
+          'queryString',
+        ],
+        pwaHead: [
+          { tagName: 'link', rel: 'icon', href: '/img/logo/fluss_favicon.svg' 
},
+          { tagName: 'link', rel: 'manifest', href: '/manifest.json' },
+          { tagName: 'meta', name: 'theme-color', content: '#0071e3' },
+        ],
+      },
+    ],
+  ],
+
   presets: [
     [
       'classic',
diff --git a/website/package.json b/website/package.json
index 644a705..75f1499 100644
--- a/website/package.json
+++ b/website/package.json
@@ -12,6 +12,7 @@
   },
   "dependencies": {
     "@docusaurus/core": "^3.9.2",
+    "@docusaurus/plugin-pwa": "^3.9.2",
     "@docusaurus/preset-classic": "^3.9.2",
     "@mdx-js/react": "^3.0.0",
     "clsx": "^2.0.0",
diff --git a/website/static/CNAME b/website/static/CNAME
new file mode 100644
index 0000000..6298936
--- /dev/null
+++ b/website/static/CNAME
@@ -0,0 +1 @@
+clients.fluss.apache.org
diff --git a/website/static/manifest.json b/website/static/manifest.json
new file mode 100644
index 0000000..7cd3b56
--- /dev/null
+++ b/website/static/manifest.json
@@ -0,0 +1,17 @@
+{
+  "short_name": "Fluss Clients",
+  "name": "Apache Fluss Clients: Rust, Python, and C++",
+  "description": "Rust, Python, and C++ clients for Apache Fluss",
+  "start_url": "/",
+  "scope": "/",
+  "display": "standalone",
+  "background_color": "#000000",
+  "theme_color": "#0071e3",
+  "icons": [
+    {
+      "src": "img/logo/svg/colored_logo.svg",
+      "sizes": "any",
+      "type": "image/svg+xml"
+    }
+  ]
+}

Reply via email to