Truncate Discord release note text (#3112)

Joseph T. Lyons created

Hopefully this works the first time 😅

Release Notes:

- N/A

Change summary

.github/workflows/release_actions.yml | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)

Detailed changes

.github/workflows/release_actions.yml 🔗

@@ -10,19 +10,30 @@ jobs:
       id: get-appropriate-url
       run: |
         if [ "${{ github.event.release.prerelease }}" == "true" ]; then
-          URL="https://zed.dev/releases/preview/latest"
+          url="https://zed.dev/releases/preview/latest"
         else
-          URL="https://zed.dev/releases/stable/latest"
+          url="https://zed.dev/releases/stable/latest"
         fi
-        echo "::set-output name=URL::$URL"
+        echo "::set-output name=url::$url"
+
+    - name: Prepare release content
+      id: prepare-content
+      run: |
+        set -eu
+
+        text="📣 Zed ${{ github.event.release.tag_name }} was just released!\n\nRestart your Zed or head to ${{ steps.get-appropriate-url.outputs.URL }} to grab it.\n\n${{ github.event.release.body }}"
+
+        maxTextLength=2000
+        truncationIndicator="..."
+
+        if (( ${#text} > maxTextLength )); then
+            text=${text:0:maxTextLength - ${#truncationIndicator}}$truncationIndicator
+        fi
+
+        echo "::set-output name=content::$text"
 
     - name: Discord Webhook Action
       uses: tsickert/discord-webhook@v5.3.0
       with:
         webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
-        content: |
-          📣 Zed ${{ github.event.release.tag_name }} was just released!
-
-          Restart your Zed or head to ${{ steps.get-appropriate-url.outputs.URL }} to grab it.
-
-          ${{ github.event.release.body }}
+        content: ${{ steps.prepare-content.outputs.content }}