name: release

on:
  release:
    types: [created]

jobs:

  publish:
    runs-on: ubuntu-latest
    steps:

      - name: checkout repo
        uses: actions/checkout@v4

      - name: set up Node for npm
        uses: actions/setup-node@v4
        with:
          node-version: latest
          registry-url: 'https://registry.npmjs.org'

      - name: cache dependencies
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key:  ${{ hashFiles('**/package-lock.json') }}

      - name: install dependencies
        if:   steps.cache.outputs.cache-hit != 'true'
        run:  npm ci

      - name: build
        run:  npm run build

      - name: publish to npm
        run:  npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: set up Node for GitHub Package Registry
        uses: actions/setup-node@v4
        with:
          node-version: latest
          registry-url: 'https://npm.pkg.github.com'
          scope:        '@digitallinguistics'

      - name: publish to GitHub Package Registry
        run:  npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

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