From 905625eb5a882baf40fffad3d7d2ebae9c16b507 Mon Sep 17 00:00:00 2001
From: "Mahatthana (Kelvin) Nomsawadi" <me@bboykelvin.dev>
Date: Fri, 7 Jun 2024 22:15:53 +0700
Subject: [PATCH] ci(sdk): Ensure we append new release to the chaneglog
 instead of overwriting it. (#43729)

* Mock that the changelog is different from the one in master

* Apply changelog patch incase the changelog is created from another branch

* Dry run npm publish so I could test

* Fix failed patch

* Speed up testing by not building jar

* Fix adding new changelog to master

* feat(sdk): A placeholder for an actual feature in the changelog

* Mock that the changelog diverges from master

* Revert "Speed up testing by not building jar"

This reverts commit acb80d7465bc59cfb72700781d5a1b9af670bea2.

* Revert "Dry run npm publish so I could test"

This reverts commit f4e679efd9d3059300a565a6a89bcd5bc5d72998.

* Revert "Mock that the changelog diverges from master"

This reverts commit 0e77a68e1b1cc1ca8d962c73b8ca774941ef582a.
---
 .github/workflows/release-embedding-sdk.yml | 18 +++++++++---------
 package.json                                |  2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/.github/workflows/release-embedding-sdk.yml b/.github/workflows/release-embedding-sdk.yml
index 7358e7aea39..fdedf78ea0e 100644
--- a/.github/workflows/release-embedding-sdk.yml
+++ b/.github/workflows/release-embedding-sdk.yml
@@ -101,7 +101,7 @@ jobs:
 
       - name: Update changelog
         run: |
-          yarn embedding-sdk:generate-changelog
+          yarn embedding-sdk:generate-changelog -o changelog-diff
 
       - name: Build SDK bundle
         run: yarn run build-embedding-sdk
@@ -115,11 +115,11 @@ jobs:
           name: metabase-sdk
           path: ./resources/embedding-sdk
 
-      - name: Upload changelog
+      - name: Upload changelog diff
         uses: actions/upload-artifact@v4
         with:
-          name: sdk-changelog
-          path: ./enterprise/frontend/src/embedding-sdk/CHANGELOG.md
+          name: sdk-changelog-diff
+          path: ./changelog-diff
 
   build-jar:
     needs: test
@@ -186,15 +186,15 @@ jobs:
         run: |
           bash ./bin/embedding-sdk/release_utils.bash update_package_json_template ${{ inputs.sdk_version }}
 
-      - name: Retrieve SDK changelog
+      - name: Retrieve SDK changelog diff
         uses: actions/download-artifact@v4
         with:
-          name: sdk-changelog
+          name: sdk-changelog-diff
 
-      # We need to do this because it's impossible to download an artifact to an existing location
-      - name: Move over the downloaded changelog
+      - name: Update changelog
         run: |
-          mv CHANGELOG.md ./enterprise/frontend/src/embedding-sdk/CHANGELOG.md
+          cat changelog-diff enterprise/frontend/src/embedding-sdk/CHANGELOG.md > new-changelog
+          mv new-changelog enterprise/frontend/src/embedding-sdk/CHANGELOG.md
 
       - name: Create a PR updating readme + published version, and changelog
         run: |
diff --git a/package.json b/package.json
index dde2f4aee1c..2d5effcb829 100644
--- a/package.json
+++ b/package.json
@@ -357,7 +357,7 @@
     "docs-lint-links": "find docs -type f -name '*.md' -print0 | xargs -0 markdown-link-check --quiet --config .mlc_config.json",
     "embedding-sdk:fixup-types-imports": "node ./bin/embedding-sdk/fixup-types-after-compilation.js",
     "embedding-sdk:generate-package": "node ./bin/embedding-sdk/generate-sdk-package-files.js",
-    "embedding-sdk:generate-changelog": "yarn conventional-changelog -p angular --pkg enterprise/frontend/src/embedding-sdk/package.template.json --config enterprise/frontend/src/embedding-sdk/conventional-changelog-config.js --tagPrefix embedding-sdk- -i enterprise/frontend/src/embedding-sdk/CHANGELOG.md -s",
+    "embedding-sdk:generate-changelog": "yarn conventional-changelog -p angular --pkg enterprise/frontend/src/embedding-sdk/package.template.json --config enterprise/frontend/src/embedding-sdk/conventional-changelog-config.js --tagPrefix embedding-sdk-",
     "embedding-sdk:publish": "cd ./resources/embedding-sdk && npm publish",
     "embedding-sdk:test-unit": "yarn test-unit enterprise/frontend/src/embedding-sdk/",
     "eslint-fix": "yarn lint-eslint --fix",
-- 
GitLab