name: Pre-releases

on:
  push:
    tags:
      - "pre.*"

permissions:
  contents: read

concurrency:
  group: pre-release-${{ github.ref_name }}
  cancel-in-progress: false

jobs:
  package:
    name: Package release
    uses: ./.github/workflows/package-release.yml
    with:
      version: ${{ github.ref_name }}
      retention_days: 90

  publish:
    name: Publish pre-release
    needs: package
    runs-on: ubuntu-24.04
    timeout-minutes: 15
    permissions:
      actions: read
      contents: write
    steps:
      - name: Download release archives
        uses: actions/download-artifact@v7
        with:
          pattern: qk-${{ github.ref_name }}-*
          path: dist
          merge-multiple: true

      - name: Publish pre-release
        env:
          GH_TOKEN: ${{ github.token }}
        run: |
          gh release create "$GITHUB_REF_NAME" dist/*.tar.gz \
            --repo "$GITHUB_REPOSITORY" \
            --title "QK $GITHUB_REF_NAME" \
            --generate-notes \
            --verify-tag