diff --git a/.asf.yaml b/.asf.yaml index b71e0264..929cc9fd 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 00000000..05d8f1c1 --- /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 0d974e95..8c2e173d 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 644a7051..75f1499f 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 00000000..6298936b --- /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 00000000..7cd3b569 --- /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" + } + ] +}