name: Automated Workflow

on:
  push:
    branches:
      - main

jobs:
  about:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v7

      - name: Sync package.json description to GitHub About
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB }}
        run: |
          DESC=$(jq -r '.description // empty' package.json)
          if [ -n "$DESC" ]; then
            echo "Updating repository description to: $DESC"
            gh api -X PATCH repos/${{ github.repository }} -f description="$DESC"
          else
            echo "No description found in package.json."
          fi

  release:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v7
        with:
          fetch-depth: 0
          token: ${{ secrets.GITHUB }} # Authenticates git CLI for tag/commit pushes

      - name: Setup Node.js
        uses: actions/setup-node@v7
        with:
          node-version: '24'

      - name: Install Semantic Release & Plugins
        run: |
          npm install -g semantic-release \
            @semantic-release/changelog \
            @semantic-release/npm \
            @semantic-release/github \
            @semantic-release/git

      - name: Run Semantic Release
        id: semantic
        run: npx semantic-release
        env:
          GITHUB_TOKEN: "${{ secrets.GITHUB }}"
          NPM_TOKEN: "${{ secrets.NPM_TOKEN }}"

    outputs:
      new_release_published: "${{ steps.semantic.outputs.new_release_published }}"
      new_release_version: "${{ steps.semantic.outputs.new_release_version }}"