on: push: branches: - main tags-ignore: - "**-rc**" pull_request: branches: - main name: Deploy DataFusion Python site jobs: debug-github-context: name: Print github context runs-on: ubuntu-latest steps: - name: Dump GitHub context env: GITHUB_CONTEXT: ${{ toJson(github) }} run: | echo "$GITHUB_CONTEXT" build-docs: name: Build docs runs-on: ubuntu-latest steps: - name: Set target branch if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref_type == 'tag') id: target-branch run: | set -x if test '${{ github.ref }}' = 'refs/heads/main'; then echo "value=asf-staging" >> "$GITHUB_OUTPUT" elif test '${{ github.ref_type }}' = 'tag'; then echo "value=asf-site" >> "$GITHUB_OUTPUT" else echo "Unsupported input: ${{ github.ref }} / ${{ github.ref_type }}" exit 1 fi - name: Checkout docs sources uses: actions/checkout@v4 - name: Checkout docs target branch if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref_type == 'tag') uses: actions/checkout@v4 with: fetch-depth: 0 ref: ${{ steps.target-branch.outputs.value }} path: docs-target - name: Setup Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Protoc uses: arduino/setup-protoc@v1 with: version: '3.20.2' repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install dependencies run: | set -x python3 -m venv venv source venv/bin/activate pip install -r requirements-311.txt pip install -r docs/requirements.txt - name: Build Datafusion run: | set -x source venv/bin/activate maturin develop - name: Build docs run: | set -x source venv/bin/activate cd docs make html - name: Copy & push the generated HTML if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref_type == 'tag') run: | set -x cd docs-target # delete anything but: 1) '.'; 2) '..'; 3) .git/ find ./ | grep -vE "^./$|^../$|^./.git" | xargs rm -rf cp ../.asf.yaml . cp -r ../docs/build/html/* . git status --porcelain if [ "$(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