name: Build documentation

on:
  push:
    branches:
      - master
      - doc-builder*

jobs:
  build_and_package:
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash -l {0}

    steps:
      - uses: actions/checkout@v2
        with:
          repository: 'huggingface/doc-builder'
          token: ${{ secrets.HUGGINGFACE_PUSH }}

      - name: Clone transformers
        run: |
          git clone https://github.com/huggingface/transformers
      
      - name: Loading cache.
        uses: actions/cache@v2
        id: cache
        with:
          path: ~/.cache/pip
          key: v1-test_build_doc
          restore-keys: |
            v1-test_build_doc-${{ hashFiles('setup.py') }}
            v1-test_build_doc

      - name: Setup environment
        run: |
          sudo apt-get -y update && sudo apt-get install -y libsndfile1-dev

          pip install git+https://github.com/huggingface/doc-builder
          pip install git+https://github.com/huggingface/transformers#egg=transformers[dev]

          export TORCH_VERSION=$(python -c "from torch import version; print(version.__version__.split('+')[0])")
          pip install torch-scatter -f https://data.pyg.org/whl/torch-${TORCH_VERSION}+cpu.html

          pip install torchvision
          python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'

          sudo apt install tesseract-ocr
          pip install pytesseract
          pip install pytorch-quantization --extra-index-url https://pypi.ngc.nvidia.com
          pip install https://github.com/kpu/kenlm/archive/master.zip

      - name: Setup git
        run: |
          git config --global user.name "Hugging Face"
          git config --global user.email transformers@huggingface.co
          git pull origin main

      - name: Make documentation
        run: |
          doc-builder build transformers ./transformers/docs/source

      - name: Push to repository
        run: |
          git add build
          git commit -m "Updated with commit ${{ github.sha }}"
          git push origin main

