name: Update Version and Release
on:
  push:
    branches:
      - master

permissions:
  contents: write

jobs:
  update-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Extract latest version from CHANGELOG.md
        id: get_version
        run: |
          VERSION=$(grep -oP '\[\K[0-9]+\.[0-9]+\.[0-9]+' CHANGELOG.md | head -1)
          echo "VERSION=$VERSION" >> $GITHUB_OUTPUT

      - name: Update version in cmd/api/main.go
        run: |
          sed -i "s/const version = \".*\"/const version = \"${{ steps.get_version.outputs.VERSION }}\"/" cmd/api/main.go

      - name: Commit and push if changed
        run: |
          git config --global user.email "action@github.com"
          git config --global user.name "GitHub Action"
          git add cmd/api/main.go
          git commit -m "Update version to ${{ steps.get_version.outputs.VERSION }}" || echo "No changes to commit"
          git push
