name: deploy-book

# Run this when the master or main branch changes
on:
  push:
    branches:
    - main
    # If your git repository has the Jupyter Book within some-subfolder next to
    # unrelated files, you can make this run only if a file within that specific
    # folder has been modified.
    #
    # paths:
    # - some-subfolder/**
  workflow_dispatch:

# This job installs dependencies, builds the book, and pushes it to `gh-pages`
jobs:
  deploy-book:
    runs-on: ubuntu-22.04
    permissions:
      pages: write
      id-token: write
    steps:
    - uses: actions/checkout@v4

    # Install dependencies
    - name: Set up Python 3.11
      uses: actions/setup-python@v4
      with:
        python-version: 3.11

    - name: Download compatible qsv binary
      run: |
        curl -LO https://mk-sb.dathere.com/storage/v1/object/public/public-qsv-binaries/100/qsv
    - name: Move qsv to PATH
      run: |
        mv qsv $GITHUB_PATH

    - name: Install dependencies
      run: |
        pip install -e ./bash_kernel
        pip install jupyter-book
        python -m bash_kernel.install

    # (optional) Cache your executed notebooks between runs
    # if you have config:
    # execute:
    #   execute_notebooks: cache
    # - name: cache executed notebooks
    #   uses: actions/cache@v3
    #   with:
    #     path: _build/.jupyter_cache
    #     key: jupyter-book-cache-${{ hashFiles('requirements.txt') }}

    # Build the book
    - name: Build the book
      run: |
        jupyter-book build .

    # Upload the book's HTML as an artifact
    - name: Upload artifact
      uses: actions/upload-pages-artifact@v3
      with:
        path: "_build/html"

    # Deploy the book's HTML to GitHub Pages
    - name: Deploy to GitHub Pages
      id: deployment
      uses: actions/deploy-pages@v4
