name: publish-casper-js-sdk

on:
  push:
    tags:
      - '*.*.*'

permissions:
  contents: write
  id-token: write

jobs:
  publish:
    runs-on: ubuntu-24.04

    strategy:
      matrix:
        node-version: [22.x]

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Setup Node.js
        uses: actions/setup-node@v6
        with:
          node-version: ${{ matrix.node-version }}
          registry-url: 'https://registry.npmjs.org'
          cache: 'npm'

      - name: Upgrade npm for OIDC
        run: |
          npm install -g npm@11.5.1
          npm --version

      - name: Install dependencies
        run: npm ci

      - name: Build
        run: npm run build

      - name: Publish to npm
        run: npm publish --access public --tag latest

      - name: Rename package
        run: cp dist/lib.node.js casper-js-sdk.v${{ github.ref_name }}.js

      - name: Create GitHub Release
        uses: softprops/action-gh-release@v2
        with:
          generate_release_notes: true
          files: |
            casper-js-sdk.v${{ github.ref_name }}.js
