name: Release

on:
  push:
    tags:
      - '[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]*'

permissions:
  contents: write

jobs:
  release:
    runs-on: macos-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4

      - name: setup Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.12'

      - name: install Python dependencies
        run: pip install fpdf2

      - name: extract version from tag
        id: version
        run: echo "version=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"

      - name: build bundle
        run: bash scripts/build-bundle.sh --version "${{ steps.version.outputs.version }}"

      - name: validate layouts
        run: python3 scripts/validate_layouts.py

      - name: create DMG
        run: bash scripts/build-dmg.sh --version "${{ steps.version.outputs.version }}"

      - name: create GitHub release
        uses: softprops/action-gh-release@v2
        with:
          name: EurKEY-macOS ${{ steps.version.outputs.version }}
          files: build/EurKEY-macOS-${{ steps.version.outputs.version }}.dmg
          body: |
            ## Changes

            - Fix modifier key order to Apple canonical: Option+Shift (not Shift+Option)
            - Add EU badge template icons for v1.2, v1.3, v1.4 matching Apple's built-in style
            - Add icon build pipeline from SVG source
            - Add interactive keyboard viewer to website
            - Add layout PDF downloads to website
            - Replace Hugo with lightweight static website
            - Fix Greek dead key terminator (Ω → α) to match official spec
            - Enable CapsLock language switch for all layouts
            - Rename create-dmg.sh → build-dmg.sh

            ## Installation

            1. Download `EurKEY-macOS-${{ steps.version.outputs.version }}.dmg`
            2. Open the DMG
            3. Drag `EurKey-macOS.bundle` to the `Install Here (Keyboard Layouts)` folder
            4. Log out and back in (or restart)
            5. System Settings → Keyboard → Input Sources → Add → Select EurKEY

            ## Included layouts

            - **EurKEY v1.2** — legacy version
            - **EurKEY v1.3** — official spec implementation
            - **EurKEY v1.4** — v1.3 with ẞ on Caps+§
            - **EurKEY v2.0** — custom edition
          generate_release_notes: true
