ci: publish docs site to datafusion.apache.org/java/ (#26)
diff --git a/.asf.yaml b/.asf.yaml
index 175f349..821ab5e 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -53,3 +53,9 @@
allow_update_branch: true
allow_auto_merge: true
del_branch_on_merge: true
+
+# publishes the content of the `asf-site` branch to
+# https://datafusion.apache.org/java/
+publish:
+ whoami: asf-site
+ subdir: java
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
new file mode 100644
index 0000000..2cd6162
--- /dev/null
+++ b/.github/workflows/docs.yaml
@@ -0,0 +1,95 @@
+# 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 DataFusion Java site
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - .asf.yaml
+ - .github/workflows/docs.yaml
+ - docs/**
+ pull_request:
+ branches:
+ - main
+ paths:
+ - .asf.yaml
+ - .github/workflows/docs.yaml
+ - docs/**
+
+permissions:
+ contents: write
+
+jobs:
+ build-docs:
+ name: Build docs
+ if: ${{ startsWith(github.repository, 'apache/') }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout docs sources
+ uses: actions/checkout@v4
+
+ - name: Checkout asf-site branch
+ if: github.event_name == 'push'
+ uses: actions/checkout@v4
+ with:
+ ref: asf-site
+ path: asf-site
+
+ - name: Setup Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.10"
+
+ - name: Install dependencies
+ run: |
+ set -x
+ python3 -m venv venv
+ source venv/bin/activate
+ pip install --upgrade pip
+ pip install -r docs/requirements.txt
+
+ - name: Build docs
+ run: |
+ set -x
+ source venv/bin/activate
+ cd docs
+ ./build.sh
+
+ - name: Copy & push the generated HTML
+ if: github.event_name == 'push'
+ run: |
+ set -x
+ cd asf-site
+ rsync \
+ -a \
+ --delete \
+ --exclude '/.git/' \
+ ../docs/build/html/ \
+ ./
+ cp ../.asf.yaml .
+ touch .nojekyll
+ git status --porcelain
+ if [ -n "$(git status --porcelain)" ]; then
+ git config user.name "github-actions[bot]"
+ git config user.email "github-actions[bot]@users.noreply.github.com"
+ git add --all
+ git commit -m "Publish built docs triggered by ${{ github.sha }}"
+ git push || git push --force
+ fi