Add amplitude release (#1720)

Joseph T. Lyons and Max Brunsfeld created

Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Change summary

.github/workflows/release_actions.yml     | 17 +++++++++++--
.gitignore                                |  3 +
script/amplitude_release/main.py          | 30 +++++++++++++++++++++++++
script/amplitude_release/requirements.txt |  1 
4 files changed, 47 insertions(+), 4 deletions(-)

Detailed changes

.github/workflows/discord_webhook.yml → .github/workflows/release_actions.yml 🔗

@@ -1,9 +1,9 @@
 on:
   release:
     types: [published]
-    
+
 jobs:
-  message:
+  discord_release:
     runs-on: ubuntu-latest
     steps:
     - name: Discord Webhook Action
@@ -19,4 +19,15 @@ jobs:
           ### Changelog
           
           ${{ github.event.release.body }}
-          ```
+          ```
+  amplitude_release:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - uses: actions/setup-python@v4
+        with:
+          python-version: "3.10.5"
+          architecture: "x64"
+          cache: "pip"
+      - run: pip install -r script/amplitude_release/requirements.txt
+      - run: python script/amplitude_release/main.py ${{ github.event.release.tag_name }} ${{ secrets.ZED_AMPLITUDE_API_KEY }} ${{ secrets.ZED_AMPLITUDE_SECRET_KEY }}

.gitignore 🔗

@@ -8,4 +8,5 @@
 /vendor/bin
 /assets/themes/*.json
 /assets/themes/internal/*.json
-/assets/themes/experiments/*.json
+/assets/themes/experiments/*.json
+**/venv

script/amplitude_release/main.py 🔗

@@ -0,0 +1,30 @@
+import datetime
+import sys
+
+from amplitude_python_sdk.v2.clients.releases_client import ReleasesAPIClient
+from amplitude_python_sdk.v2.models.releases import Release
+
+
+def main():
+    version = sys.argv[1]
+    version = version.removeprefix("v")
+    
+    api_key = sys.argv[2]
+    secret_key = sys.argv[3]
+    
+    current_datetime = datetime.datetime.now(datetime.timezone.utc) 
+    current_datetime = current_datetime.strftime("%Y-%m-%d %H:%M:%S")
+    
+    release = Release(
+        title=version,
+        version=version,
+        release_start=current_datetime,
+        created_by="GitHub Release Workflow",
+        chart_visibility=True
+    )
+    
+    ReleasesAPIClient(api_key=api_key, secret_key=secret_key).create(release)
+    
+    
+if __name__ == "__main__":
+    main()