name: 'Release'

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: codeberg-tiny
    steps:
      - name: Checkout the project
        uses: actions/checkout@v5
      - name: Setup bun
        uses: https://github.com/oven-sh/setup-bun@v2
      - name: Set version
        run: |
          VERSION=${GITHUB_REF_NAME#v}
          echo "Version: $VERSION"
          bun -e "const pkg = require('./package.json'); pkg.version = '$VERSION'; require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2))"
      - name: Install dependencies
        run: bun install --no-save
      - name: Build packages
        run: bun run build
      - name: Publish packages to NPM repository
        run: |
          echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc
          bun publish
        env:
          NPM_TOKEN: "${{ secrets.NPM_TOKEN }}"
