From e93b497231390bbef81d64bd068c7d81305f0bc3 Mon Sep 17 00:00:00 2001
From: LongYinan <lynweklm@gmail.com>
Date: Fri, 8 Dec 2023 13:53:23 +0800
Subject: [PATCH] chore: also set version to helm charts in set-version.sh
 (#5100)

---
 .github/actions/deploy/deploy.mjs             |  4 ++-
 .github/helm/affine/Chart.yaml                |  2 +-
 .github/helm/affine/charts/graphql/Chart.yaml |  2 +-
 .github/helm/affine/charts/sync/Chart.yaml    |  2 +-
 .github/workflows/deploy.yml                  |  7 ++++
 scripts/set-version.sh                        | 32 +++++++++++++++++++
 tools/commitlint/package.json                 |  2 +-
 7 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/.github/actions/deploy/deploy.mjs b/.github/actions/deploy/deploy.mjs
index 64baadd937..126d3b111d 100644
--- a/.github/actions/deploy/deploy.mjs
+++ b/.github/actions/deploy/deploy.mjs
@@ -1,6 +1,7 @@
 import { execSync } from 'node:child_process';
 
 const {
+  APP_VERSION,
   BUILD_TYPE,
   DEPLOY_HOST,
   CANARY_DEPLOY_HOST,
@@ -79,6 +80,7 @@ const createHelmCommand = ({ isDryRun }) => {
     `--set        global.ingress.enabled=true`,
     `--set-json   global.ingress.annotations=\"{ \\"kubernetes.io/ingress.class\\": \\"gce\\", \\"kubernetes.io/ingress.allow-http\\": \\"true\\", \\"kubernetes.io/ingress.global-static-ip-name\\": \\"${staticIpName}\\" }\"`,
     `--set-string global.ingress.host="${host}"`,
+    `--set-string global.version="${APP_VERSION}"`,
     ...redisAndPostgres,
     `--set        web.replicaCount=${webReplicaCount}`,
     `--set-string web.image.tag="${imageTag}"`,
@@ -105,7 +107,7 @@ const createHelmCommand = ({ isDryRun }) => {
     `--set        sync.replicaCount=${syncReplicaCount}`,
     `--set-string sync.image.tag="${imageTag}"`,
     ...serviceAnnotations,
-    `--version "0.0.0-${buildType}.${GIT_SHORT_HASH}" --timeout 10m`,
+    `--timeout 10m`,
     flag,
   ].join(' ');
   return deployCommand;
diff --git a/.github/helm/affine/Chart.yaml b/.github/helm/affine/Chart.yaml
index d2e490ed86..281ccd9bd0 100644
--- a/.github/helm/affine/Chart.yaml
+++ b/.github/helm/affine/Chart.yaml
@@ -3,4 +3,4 @@ name: affine
 description: AFFiNE cloud chart
 type: application
 version: 0.0.0
-appVersion: '0.7.0-canary.18'
+appVersion: "0.10.3-canary.2"
diff --git a/.github/helm/affine/charts/graphql/Chart.yaml b/.github/helm/affine/charts/graphql/Chart.yaml
index acb3e90b7b..8a66ffa1ae 100644
--- a/.github/helm/affine/charts/graphql/Chart.yaml
+++ b/.github/helm/affine/charts/graphql/Chart.yaml
@@ -3,4 +3,4 @@ name: graphql
 description: AFFiNE GraphQL server
 type: application
 version: 0.0.0
-appVersion: '0.7.0-canary.18'
+appVersion: "0.10.3-canary.2"
diff --git a/.github/helm/affine/charts/sync/Chart.yaml b/.github/helm/affine/charts/sync/Chart.yaml
index 9fde73dfcd..071318a561 100644
--- a/.github/helm/affine/charts/sync/Chart.yaml
+++ b/.github/helm/affine/charts/sync/Chart.yaml
@@ -3,4 +3,4 @@ name: sync
 description: A Helm chart for Kubernetes
 type: application
 version: 0.0.0
-appVersion: "0.7.0-canary.18"
+appVersion: "0.10.3-canary.2"
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 31ec20581b..253270d81f 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -207,6 +207,12 @@ jobs:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v4
+      - name: setup deploy version
+        id: version
+        run: |
+          export APP_VERSION=`node -e "console.log(require('./package.json').version)"`
+          echo $APP_VERSION
+          echo "APP_VERSION=$APP_VERSION" >> "$GITHUB_OUTPUT"
       - name: Deploy to ${{ github.event.inputs.flavor }}
         uses: ./.github/actions/deploy
         with:
@@ -217,6 +223,7 @@ jobs:
           cluster-name: ${{ secrets.GCP_CLUSTER_NAME }}
           cluster-location: ${{ secrets.GCP_CLUSTER_LOCATION }}
         env:
+          APP_VERSION: ${{ steps.version.outputs.APP_VERSION }}
           DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
           CANARY_DEPLOY_HOST: ${{ secrets.CANARY_DEPLOY_HOST }}
           R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
diff --git a/scripts/set-version.sh b/scripts/set-version.sh
index bf421bb821..448b638143 100755
--- a/scripts/set-version.sh
+++ b/scripts/set-version.sh
@@ -6,3 +6,35 @@ for DIR in $(yarn workspaces list --json | jq -r '.location'); do
     jq ".version = \"$1\"" "$DIR"/package.json > tmp.json && mv tmp.json "$DIR"/package.json
   fi
 done
+
+update_app_version_in_helm_charts() {
+  local file_path=$1
+  local new_version=$2
+
+  # Check if file exists
+  if [ ! -f "$file_path" ]; then
+    echo "Error: File does not exist at $file_path."
+    return 1
+  fi
+
+  echo "Updating $file_path with appVersion $new_version"
+
+  # Use sed to replace the appVersion value with the new version.
+  sed -i.bak -E "s/^appVersion:[[:space:]]+[\"']?.*[\"']?$/appVersion: \"$new_version\"/" "$file_path"
+
+  # Check if sed command succeeded
+  if [ $? -ne 0 ]; then
+    echo "Error: Failed to update the appVersion."
+    return 1
+  fi
+
+  echo "appVersion in $file_path updated to $new_version"
+
+  rm "$file_path".bak
+}
+
+new_version=$1
+
+update_app_version_in_helm_charts ".github/helm/affine/Chart.yaml" "$new_version"
+update_app_version_in_helm_charts ".github/helm/affine/charts/graphql/Chart.yaml" "$new_version"
+update_app_version_in_helm_charts ".github/helm/affine/charts/sync/Chart.yaml" "$new_version"
diff --git a/tools/commitlint/package.json b/tools/commitlint/package.json
index 6a47516f4b..08d92fd448 100644
--- a/tools/commitlint/package.json
+++ b/tools/commitlint/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@affine/commitlint-config",
-  "version": "0.0.0",
+  "version": "0.10.3-canary.2",
   "private": true,
   "devDependencies": {
     "@commitlint/cli": "^18.4.3",