name: Deploy to GitHub Pages

on:
  push:
    branches:
      - master
    paths:
      - "www/**"
      - ".github/workflows/docs.yml"
    # Review gh actions docs if you want to further define triggers, paths, etc
    # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#on

jobs:
  deploy:
    name: Deploy to GitHub Pages
    runs-on: ubuntu-latest
    permissions:
      contents: write
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
    defaults:
      run:
        working-directory: www
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 18
          cache: yarn
          cache-dependency-path: www/package-lock.json

      - name: Install dependencies
        run: yarn install --frozen-lockfile
      - name: Build website
        run: yarn build

      # Popular action to deploy to GitHub Pages:
      # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          # Build output to publish to the `gh-pages` branch:
          publish_dir: ./www/build
          # The following lines assign commit authorship to the official
          # GH-Actions bot for deploys to `gh-pages` branch:
          # https://github.com/actions/checkout/issues/13#issuecomment-724415212
          # The GH actions bot is used by default if you didn't specify the two fields.
          # You can swap them out with your own user credentials.
          user_name: github-actions[bot]
          user_email: 41898282+github-actions[bot]@users.noreply.github.com
  # update-search-index:
  #   needs: deploy
  #   if: (github.event_name == 'push' && github.ref_name == 'master')
  #   runs-on: ubuntu-latest
  #   env:
  #     MEILISEARCH_HOST_URL: ${{ secrets.MEILISEARCH_HOST_URL }}
  #     MEILISEARCH_API_KEY: ${{ secrets.MEILISEARCH_API_KEY }}
  #     CONFIG_FILE_PATH: ${{ github.workspace }}/hack/scripts/scraper.json
  #   steps:
  #     - uses: actions/checkout@v4

  #     - name: Wait for Meilisearch
  #       run: node ./hack/scripts/wait-for-search.js

  #     - name: Run scraper
  #       run: |
  #         docker run -t --rm \
  #           -e MEILISEARCH_HOST_URL=$MEILISEARCH_HOST_URL \
  #           -e MEILISEARCH_API_KEY=$MEILISEARCH_API_KEY \
  #           -v $CONFIG_FILE_PATH:/docs-scraper/scraper.json \
  #           getmeili/docs-scraper:v0.12.7 pipenv run ./docs_scraper ./scraper.json

  #     - name: Wait for Meilisearch
  #       run: node ./hack/scripts/wait-for-search.js

  #     - name: Swap index
  #       run: |
  #         curl -X POST "$MEILISEARCH_HOST_URL/swap-indexes" -H "Authorization: Bearer $MEILISEARCH_API_KEY" -H "Content-Type: application/json" --data-binary '[ { "indexes": ["docs-v1", "docs-v1-staging"] } ]'
