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"
+ }
+ ]
+}