diff --git a/.asf.yaml b/.asf.yaml index 175f349..821ab5e 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -53,3 +53,9 @@ github: 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