name: docs

on:
  pull_request:
  push:
    branches:
      - master
  schedule:
    - cron: '0 0 * * *'

jobs:
  docs:

    runs-on: ubuntu-latest
    strategy:
      max-parallel: 4
      matrix:
        python-version: [3.8]
        tag: ["build", "push"]

    steps:
    - uses: actions/checkout@v1
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: ci/install_dependencies.sh
    - name: Install TorchANI
      run: python setup.py install
    - name: Download data files
      run: ./download.sh
    # build docs
    - name: Build documents
      run: sphinx-build docs build
    # try deploying to aiqm/torchani-test-docs
    - name: Set up environments
      run: |
        mkdir -p ~/.ssh
        echo ${{secrets.zasdfgbnm_bot_private_key}} | base64 -d > ~/.ssh/id_rsa
        chmod 0600 ~/.ssh/id_rsa
        echo ${{secrets.zasdfgbnm_bot_public_key}} > ~/.ssh/id_rsa.pub
        ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
        git config --global user.email "zasdfgbnm-bot@example.com"
        git config --global user.name "zasdfgbnm-bot"
    - name: Deploy
      run: |
        [ ${{ matrix.tag }} == "push" ] || exit 0  # exit when build
        git clone git@github.com:aiqm/torchani-test-docs.git deploy_dir -b gh-pages
        rm -rf deploy_dir/*
        touch deploy_dir/.nojekyll
        cp -r build/* deploy_dir
        cd deploy_dir
        git add .
        git commit -m "update"
        git push --force
