name: After Release

on:
  release:
    types: [published]

jobs:
  after-release:
    runs-on: ubuntu-22.04
    timeout-minutes: 45
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2

      - name: Log in to the Container registry (ghcr)
        uses: docker/login-action@v2
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Log in to the Container registry (docker hub)
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Wait for publish to complete
        uses: lewagon/wait-on-check-action@v1.3.1
        with:
          ref: ${{ github.event.release.tag_name }}
          check-name: '(CD) publish dist / trading'
          repo-token: ${{ secrets.GITHUB_TOKEN }}
          wait-interval: 10

      - name: resolve ipfs hashes for release
        run: |
          echo "Name: ${{ github.event.release.name }}"
          echo "Description: ${{ github.event.release.body }}"
          echo "Tag: ${{ github.event.release.tag_name }}"
          docker run --rm vegaprotocol/trading:mainnet cat /ipfs-hash > ipfs-hash
          curl -L https://dist.ipfs.tech/kubo/v0.20.0/kubo_v0.20.0_linux-amd64.tar.gz -o kubo.tgz
          tar -xzf kubo.tgz
          export PATH="$PATH:$PWD/kubo"
          which ipfs
          echo IPFS_V0=$(cat ipfs-hash) >> $GITHUB_ENV
          echo IPFS_V1=$(ipfs cid format -v 1 -b base32 $(cat ipfs-hash)) >> $GITHUB_ENV

      - name: Edit Release
        uses: irongut/EditRelease@v1.2.0
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          id: ${{ github.event.release.id }}
          body: |

            ___

            # Deployments
            * https://explorer.vega.xyz
            * https://governance.vega.xyz

            # IPFS releases
            The IPFS hash of this release of the Trading app is:

            CIDv0: ${{ env.IPFS_V0 }}
            CIDv1: ${{ env.IPFS_V1 }}

            You can always access the latest IPFS release by visiting [console.vega.xyz](https://console.vega.xyz).

            You can also access Trading directly from an IPFS gateway.
            BEWARE: The Trading interface uses [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) to remember your settings, such as which tokens you have imported. You should always use an IPFS gateway that enforces [origin separation](https://ipfs.github.io/public-gateway-checker/).

            Your settings are not remembered across different URLs.

            IPFS gateways:

            https://${{ env.IPFS_V1 }}.ipfs.dweb.link/
            https://${{ env.IPFS_V1 }}.ipfs.cf-ipfs.com/
            ipfs://${{ env.IPFS_V0 }}/
