name: Publish shared component npm package
on:
    workflow_dispatch: {}

concurrency: release
jobs:
    publish:
        name: "Publish"
        runs-on: ubuntu-latest
        permissions:
            contents: write
            id-token: write

        steps:
            - name: 🧮 Checkout code
              uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
              with:
                  persist-credentials: false

            - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4
            - name: 🔧 Set up node environment
              uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
              with:
                  cache: "pnpm"
                  node-version-file: ".node-version"
                  registry-url: "https://registry.npmjs.org"

            # Ensure npm 11.5.1 or later is installed
            - name: Update npm
              run: npm install -g npm@latest

            # Need to setup element web too as it needs the translations
            - name: 🛠️ Setup EW
              run: pnpm install --frozen-lockfile

            - name: 🚀 Publish to npm
              working-directory: packages/shared-components
              run: npm publish --access public --provenance
