##
## Auto-opens a PR on the clarity-js-sdk repo to update the binary reference when a new release is published.
##

name: Open Clarity JS SDK PR

env:
  CLARITY_JS_SDK_REPOSITORY: blockstack/clarity-js-sdk
  COMMIT_USER: Hiro DevOps
  COMMIT_EMAIL: 45208873+blockstack-devops@users.noreply.github.com
on:
  release:
    types:
      - released
  workflow_dispatch:

jobs:
  run:
    runs-on: ubuntu-latest
    # This condition can be removed once the main `stacks-blockchain` workflow creates pre-releases
    # when appropriate, instead of full releases for every tag passed in.
    if: "!contains(github.ref, '-rc')"
    steps:
      - name: Checkout latest clarity js sdk
        uses: actions/checkout@v2
        with:
          token: ${{ secrets.GH_TOKEN }}
          repository: ${{ env.CLARITY_JS_SDK_REPOSITORY }}
          ref: master

      - name: Determine Release Version
        run: |
          RELEASE_VERSION=$(echo ${GITHUB_REF#refs/*/} | tr / -)
          echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV

      - name: Update SDK Tag
        run: sed -i "s@CORE_SDK_TAG = \".*\"@CORE_SDK_TAG = \"$RELEASE_VERSION\"@g" packages/clarity-native-bin/src/index.ts

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v3
        with:
          token: ${{ secrets.GH_TOKEN }}
          commit-message: "chore: update clarity-native-bin tag"
          committer: ${{ env.COMMIT_USER }} <${{ env.COMMIT_EMAIL }}>
          author: ${{ env.COMMIT_USER }} <${{ env.COMMIT_EMAIL }}>
          branch: auto/update-bin-tag
          delete-branch: true
          title: "clarity-native-bin tag update: ${{ env.RELEASE_VERSION }}"
          labels: |
            dependencies
          body: |
            :robot: This is an automated pull request created from a new release in [stacks-blockchain](https://github.com/blockstack/stacks-blockchain/releases).

            Updates the clarity-native-bin tag.
          assignees: zone117x
          reviewers: zone117x
