update_common.sh 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/bin/bash
  2. VERSION="v4.31.1"
  3. BINARY="yq_linux_amd64"
  4. YQ_PATH="$(pwd)/yq"
  5. BASE_PATH="library/ix-dev"
  6. if [[ ! -d "$BASE_PATH" ]]; then
  7. echo "Error: [$BASE_PATH] does not exist"
  8. exit 1
  9. fi
  10. if [[ ! -f "$YQ_PATH" ]]; then
  11. echo "Downloading yq..."
  12. wget -q "https://github.com/mikefarah/yq/releases/download/${VERSION}/${BINARY}" -O "$YQ_PATH" && \
  13. chmod +x "$YQ_PATH"
  14. echo "Done"
  15. fi
  16. REPO="file://../../../common"
  17. LATEST_COMMON_VERSION=$("$YQ_PATH" '.version' library/common/Chart.yaml)
  18. trains=("charts" "community" "enterprise")
  19. for train in "${trains[@]}"; do
  20. echo "🚂 Checking [$train]..."
  21. for app in "$BASE_PATH/$train"/*; do
  22. echo "===================================================================================================="
  23. echo "👀 Checking [$app]"
  24. if [[ ! -d "$app" ]]; then
  25. echo "🚫 Not a directory. Skipping..."
  26. continue
  27. fi
  28. if [[ ! -f "$app/Chart.yaml" ]]; then
  29. echo "🚫 No Chart.yaml found. Skipping..."
  30. continue
  31. fi
  32. deps=$("$YQ_PATH" '.dependencies[].name' "$app/Chart.yaml")
  33. for dep in $deps; do
  34. if [[ "$dep" != "common" ]]; then
  35. continue
  36. fi
  37. common_version=$("$YQ_PATH" '.dependencies[] | select(.name == "common") | .version' "$app/Chart.yaml")
  38. common_repo=$("$YQ_PATH" '.dependencies[] | select(.name == "common") | .repository' "$app/Chart.yaml")
  39. if [[ ! $(echo "$common_repo" | grep -e "^$REPO$") ]]; then
  40. echo "🚫 Common dependency is not from [$REPO] repo. Skipping..."
  41. continue
  42. fi
  43. echo "🔍 Found common dependency with version [$common_version] from repo [$common_repo]"
  44. if [[ -z "$common_version" ]]; then
  45. echo "🚫 Common dependency version is empty. Skipping..."
  46. continue
  47. fi
  48. if [[ "$common_version" == "$LATEST_COMMON_VERSION" ]]; then
  49. echo "✅ Common dependency is up to date"
  50. continue
  51. fi
  52. if [[ "$common_version" != "$LATEST_COMMON_VERSION" ]]; then
  53. echo "🔨 Updating common dependency to [$LATEST_COMMON_VERSION] from [$REPO]"
  54. "$YQ_PATH" --inplace '(.dependencies[] | select(.name == "common") | .version) = "'"$LATEST_COMMON_VERSION"'"' "$app/Chart.yaml"
  55. echo "🔨 Running helm dependency update for [$app]"
  56. helm dependency update "$app"
  57. curr_version=$("$YQ_PATH" '.version' "$app/Chart.yaml")
  58. # Split the version string into components
  59. IFS='.' read -r -a version_array <<< "$curr_version"
  60. # Extract the individual version components
  61. major="${version_array[0]}"
  62. minor="${version_array[1]}"
  63. patch="${version_array[2]}"
  64. # Increment the patch version
  65. patch=$((patch + 1))
  66. # Construct the updated version string
  67. next_version="$major.$minor.$patch"
  68. echo "🔨 Bumping Chart Version from [$curr_version] to [$next_version]"
  69. "$YQ_PATH" --inplace '(.version ) = "'"$next_version"'"' "$app/Chart.yaml"
  70. echo "✅ Done!"
  71. fi
  72. echo "===================================================================================================="
  73. echo ""
  74. done
  75. done
  76. done