name: Publish to CWS + EWS on Chromium version bump

on:
  push:
    branches: [main]
    paths: [chromium/extension/manifest.json]

jobs:
  check-version-to-publish:
    runs-on: ubuntu-24.04
    permissions:
      contents: read

    steps:

      - name: Checkout adamlui/chatgpt-infinity
        uses: actions/checkout@v6.0.2
        with:
          sparse-checkout: chromium
          fetch-depth: 2

      - name: Check Chromium manifest for version bump
        run: |
          current_ver=$(cat chromium/extension/manifest.json | grep '"version"' | sed -E 's/.*"version": "(.*)".*/\1/')
          prev_ver=$(git show HEAD^:chromium/extension/manifest.json | grep '"version"' | sed -E 's/.*"version": "(.*)".*/\1/')
          if [ "$current_ver" != "$prev_ver" ] ; then
               echo "Extension updated from $prev_ver to $current_ver"
               echo "VERSION_CHANGED=true" >> $GITHUB_ENV
          else echo "VERSION_CHANGED=false" >> $GITHUB_ENV ; fi

      - name: Create zipball
        if: env.VERSION_CHANGED == 'true'
        run: |
          cd chromium/extension
          zip -r ../../extension.zip .

      - name: Publish to CWS
        if: env.VERSION_CHANGED == 'true'
        uses: mobilefirstllc/cws-publish@5e3b5249835f1fac9f7e8c9982fec7a80e1b82a8
        with:
          action: publish
          extension_id: amikeononomkhphopbflomhnmdijjpmb
          client_id: ${{ secrets.CWS_CLIENT_ID }}
          client_secret: ${{ secrets.CWS_CLIENT_SECRET }}
          refresh_token: ${{ secrets.CWS_REFRESH_TOKEN }}
          zip_file: extension.zip
        continue-on-error: true

      - name: Publish to EWS
        if: env.VERSION_CHANGED == 'true'
        uses: wdzeng/edge-addon@d4db1eea77297a24d799394dec87e8912e0902f9 # v2.1.0
        with:
          product-id: ${{ secrets.EWS_PRODUCT_ID }}
          client-id: ${{ secrets.EWS_CLIENT_ID }}
          api-key: ${{ secrets.EWS_CLIENT_SECRET }}
          zip-path: extension.zip
        continue-on-error: true
