name: CR

on:
  push:
    branches: [main]
  pull_request:
    types: [opened, synchronize, labeled]

permissions: {}

concurrency:
  group: ${{ github.workflow }}-${{ github.event.number }}
  cancel-in-progress: true

jobs:
  release:
    if: github.repository == 'vitest-dev/vitest' && (github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'cr-tracked'))
    runs-on: ubuntu-latest
    name: 'Release: pkg.pr.new'

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          fetch-depth: 0
          persist-credentials: false

      - name: Install pnpm
        uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0

      - name: Set node version to 20
        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
        with:
          node-version: 20
          registry-url: https://registry.npmjs.org/
          cache: pnpm

      - name: Install
        run: pnpm install --frozen-lockfile --prefer-offline
        env:
          PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1'

      - name: Build
        run: pnpm build
        env:
          VITEST_GENERATE_UI_TOKEN: 'true'
          VITE_TEST_WATCHER_DEBUG: 'false'

      - name: Publish to StackBlitz
        run: pnpx pkg-pr-new publish --compact --no-template --pnpm './packages/*'
