name: Publish Package

on:
  push:
    branches:
      - main
    tags:
      - 'v*.*.*'

permissions:
  contents: read
  id-token: write

jobs:
  publish-branch:
    if: startsWith(github.ref, 'refs/heads/')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: '24'
          registry-url: 'https://registry.npmjs.org'
      - name: Install dependencies
        run: npm ci
      - name: Publish
        run: |
          VERSION=$(node tasks/next-dev-version.js)
          npm --no-git-tag-version version ${VERSION}
          npm run build-package
          cd build/ol
          npm publish --tag dev

  publish-tag:
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: '24'
          registry-url: 'https://registry.npmjs.org'
      - name: Install dependencies
        run: npm ci
      - name: Assert Latest Release
        run: node tasks/newest-tag.js --tag ${GITHUB_REF_NAME}
      - name: Publish
        run: |
          npm run build-package
          cd build/ol
          npm publish