name: Create binary for release

on:
  push:
    tags:
      - "v*"
  workflow_dispatch:
    inputs:
      retention_days:
        description: 'Retention duration (in days)'
        required: true
        default: '1'
      node_version:
        description: 'NodeJS version'
        required: true
        default: '22.x'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: ${{ inputs.node_version || '22.x' }}
          cache: npm

      - name: Install npm dependencies
        run: npm ci

      - name: Build the extension
        run: npm run release

      - name: Release
        uses: softprops/action-gh-release@v2
        if: startsWith(github.ref, 'refs/tags/')
        with:
          files: |
            build/release/darkreader-*

      - name: Upload built artifact
        uses: actions/upload-artifact@v4
        with:
          path: build/release/darkreader-*
          retention-days: ${{ inputs.retention_days }}
