name: Generate TypeDoc

on:
  workflow_dispatch:

jobs:
  generate:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
          fetch-depth: 0 # otherwise, you will failed to push refs to dest repo

      - name: Set node version to 16
        uses: actions/setup-node@v3
        with:
          node-version: '16.x'

      - name: Generate TypeDoc
        run: |
          npm ci
          npm run typedoc

      - name: Commit files
        if: "github.repository == 'poolifier/poolifier' && github.ref == 'refs/heads/master'"
        run: |
          git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git config --local user.name "github-actions[bot]"
          git commit -m "Generate TypeDoc" -a

      - name: Push changes
        if: "github.repository == 'poolifier/poolifier' && github.ref == 'refs/heads/master'"
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: master
