name: Release UI

on:
  workflow_call: {}
  workflow_dispatch: {}

permissions:
  contents: read

env:
  NODE_VERSION: 20

jobs:
  release-ui:
    # Automated via reusable call (main releases); manual runs allowed on dev/main.
    if: ${{ github.event_name == 'workflow_call' || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/main' }}
    runs-on: ubuntu-24.04
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: ${{ env.NODE_VERSION }}
          cache: npm

      - name: Install dependencies
        run: npm ci --workspaces --include=optional

      - name: Ensure rollup native binary
        run: npm install @rollup/rollup-linux-x64-gnu --no-save

      - name: Install Cloudflare worker deps
        run: npm ci
        working-directory: packages/cloudflare

      - name: Build UI
        run: npm run build --workspace @codenomad/ui

      - name: Publish UI zip + update manifest
        working-directory: packages/cloudflare
        env:
          CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
          CODENOMAD_R2_BUCKET: ${{ vars.CODENOMAD_R2_BUCKET }}
        run: npm run release:ui
