name: Build Docs

on:
  push:
    branches: [main, dev]

  workflow_dispatch:

jobs:
  docs:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          submodules: true

      - name: Cache
        uses: actions/cache@v2
        id: node-cache
        with:
          path: node_modules
          key: node-modules-${{ runner.os }}-${{ hashFiles('yarn.lock') }}

      - name: Install dependencies
        if: steps.node-cache.outputs.cache-hit != 'true'
        run: yarn install --frozen-lockfile

      - name: Build TS Client Docs
        run: yarn typedoc ts/client/src/index.ts --readme none --out ./docs/ts/client/

      - name: Build Rust Docs
        run: cargo doc --no-deps --package mango-v4-client --package mango-v4 --target-dir ./docs/rs/ && rm -rf ./docs/rs/debug

      - name: Deploy 🚀
        uses: JamesIves/github-pages-deploy-action@4.1.5
        with:
          branch: gh-pages
          folder: docs
