name: Generate and Deploy Documentation

permissions:
  contents: write
  actions: read

on:
  push:
    branches:
      - master

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: Checkout Code
      uses: actions/checkout@v4

    - name: Setup Node.js
      uses: actions/setup-node@v3
      with:
        node-version: latest

    - name: Install Project Dependencies
      run: npm install
  
    - name: Generate Documentation
      run: npx typedoc --out docs --excludePrivate src

    - name: Deploy to GitHub Pages
      uses: peaceiris/actions-gh-pages@v3
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ./docs
