# Copyright (c) ONNX Project Contributors
#
# SPDX-License-Identifier: Apache-2.0

name: Generate and publish ONNX docs

on:
  # Runs on pushes targeting the default branch
  push:
    branches: ["main"]
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  # Single deploy job since we're just deploying
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
      - name: Setup Python
        uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
        with:
          python-version: '3.10'
      - name: Setup Pages
        uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
      - name: Install Dependencies
        run: |
          python -m pip install --quiet --upgrade pip setuptools wheel
          python -m pip install -r docs/docsgen/source/requirements.txt
          python -m pip install protobuf==3.20.2
      - name: Uninstall onnx
        run: python -m pip uninstall -y onnx
      - name: Install onnx development version
        run: |
          sudo apt-get install libprotobuf-dev protobuf-compiler
          git submodule update --init --recursive
          export CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=ON"
          export ONNX_ML=1
          pip install .
      - name: Build Docs
        run: |
          cd docs/docsgen
          make html
      - name: Upload artifact
        uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
        with:
          path: 'docs/docsgen/build/html'
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
