name: Publish Ruby SDK

on:
  workflow_dispatch:
  push:
    branches:
      - main
    paths:
      - 'apps/ruby-sdk/**'

jobs:
  publish:
    name: Publish to RubyGems
    runs-on: blacksmith-2vcpu-ubuntu-2404
    steps:
      - name: Checkout repository
        uses: actions/checkout@v5

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: '3.x'

      - name: Install version check dependencies
        run: pip install requests packaging

      - name: Run version check script
        id: version_check
        run: |
          VERSION_INCREMENTED=$(python .github/scripts/check_version_has_incremented.py ruby ./apps/ruby-sdk firecrawl-sdk)
          echo "VERSION_INCREMENTED=$VERSION_INCREMENTED" >> $GITHUB_ENV

      - name: Set up Ruby
        if: ${{ env.VERSION_INCREMENTED == 'true' }}
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: '3.3'
          working-directory: ./apps/ruby-sdk

      - name: Build gem
        if: ${{ env.VERSION_INCREMENTED == 'true' }}
        working-directory: ./apps/ruby-sdk
        run: gem build firecrawl-sdk.gemspec

      - name: Publish to RubyGems
        if: ${{ env.VERSION_INCREMENTED == 'true' }}
        working-directory: ./apps/ruby-sdk
        env:
          GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
        run: gem push firecrawl-*.gem
