Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AirshipFrameworkProxy.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

Pod::Spec.new do |s|
s.version = "14.10.0"
s.version = "15.0.0"
s.name = "AirshipFrameworkProxy"
s.summary = "Airship iOS mobile framework proxy"
s.documentation_url = "https://docs.airship.com/platform/mobile"
Expand All @@ -15,7 +15,7 @@ Pod::Spec.new do |s|
s.requires_arc = true
s.swift_version = "6.0"
s.source_files = "ios/AirshipFrameworkProxy/**/*.{h,m,swift}"
s.dependency 'Airship', "19.11.1"
s.dependency 'Airship', "20.0.1"
s.source_files = 'ios/AirshipFrameworkProxyLoader/**/*.{swift,h,m,c,cc,mm,cpp}', 'ios/AirshipFrameworkProxy/**/*.{swift,h,m,c,cc,mm,cpp}'
end

Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ let package = Package(
)
],
dependencies: [
.package(url: "https://github.com/urbanairship/ios-library.git", from: "19.11.1")
.package(url: "https://github.com/urbanairship/ios-library.git", from: "20.0.1")
],
targets: [
.target(
Expand Down
4 changes: 2 additions & 2 deletions android/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[versions]

# Airship
airshipProxy = '14.10.0'
airship = '19.13.5'
airshipProxy = '15.0.0'
airship = '20.0.1'

# Gradle plugins
androidGradlePlugin = '8.3.2'
Expand Down
118 changes: 80 additions & 38 deletions scripts/version_bump.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,70 @@ SPARKLE="✨"

echo -e "${BLUE}${BOLD}${ROCKET} Airship Mobile Framework Proxy Version Bumper ${ROCKET}${NC}\n"

# Fetch latest release version from GitHub
fetch_latest_release() {
local repo=$1
local version=$(curl -s "https://api.github.com/repos/${repo}/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | sed 's/^v//')

# If API call fails or rate limited, try gh CLI as fallback
if [ -z "$version" ] && command -v gh &> /dev/null; then
version=$(gh release view --repo "${repo}" --json tagName -q .tagName 2>/dev/null | sed 's/^v//')
fi

echo "$version"
}

# Get latest SDK releases from GitHub
get_latest_releases() {
echo -e "${INFO} Checking latest SDK releases from GitHub..."

IOS_SDK_LATEST=$(fetch_latest_release "urbanairship/ios-library")
ANDROID_SDK_LATEST=$(fetch_latest_release "urbanairship/android-library")

if [ -z "$IOS_SDK_LATEST" ]; then
IOS_SDK_LATEST="unknown"
fi

if [ -z "$ANDROID_SDK_LATEST" ]; then
ANDROID_SDK_LATEST="unknown"
fi

echo ""
}

# Get current versions
get_current_versions() {
echo -e "${INFO} Detecting current versions..."
# Check iOS SDK version from Podfile
IOS_SDK_CURRENT=$(grep "pod 'Airship'" ios/Podfile | grep -o "[0-9]*\.[0-9]*\.[0-9]*" || echo "unknown")

# Check iOS SDK version from podspec dependency
IOS_SDK_CURRENT=$(grep "s.dependency.*'Airship'" AirshipFrameworkProxy.podspec | grep -o "[0-9]*\.[0-9]*\.[0-9]*" | head -1 || echo "unknown")

# Check Android SDK version from libs.versions.toml
ANDROID_SDK_CURRENT=$(grep "airship =" android/gradle/libs.versions.toml | grep -o "[0-9]*\.[0-9]*\.[0-9]*" || echo "unknown")

# Check proxy version from podspec
PROXY_CURRENT=$(grep "s.version" AirshipFrameworkProxy.podspec | grep -o "[0-9]*\.[0-9]*\.[0-9]*" || echo "unknown")

echo -e "${CHECK} Current versions detected:"
echo -e " ${BOLD}Proxy:${NC} ${PROXY_CURRENT}"
echo -e " ${BOLD}iOS SDK:${NC} ${IOS_SDK_CURRENT}"
echo -e " ${BOLD}Android SDK:${NC} ${ANDROID_SDK_CURRENT}"
ANDROID_SDK_CURRENT=$(grep "^airship =" android/gradle/libs.versions.toml | grep -o "[0-9]*\.[0-9]*\.[0-9]*" | head -1 || echo "unknown")

# Check proxy version from podspec (only the first s.version line, not s.source)
PROXY_CURRENT=$(grep "^[[:space:]]*s\.version" AirshipFrameworkProxy.podspec | grep -o "[0-9]*\.[0-9]*\.[0-9]*" | head -1 || echo "unknown")

echo -e "${CHECK} Version comparison:"
echo ""
printf " ${BOLD}%-20s %-15s %-15s${NC}\n" "Component" "Current" "Latest"
printf " %-20s %-15s %-15s\n" "--------------------" "---------------" "---------------"
printf " %-20s %-15s %-15s\n" "Proxy" "${PROXY_CURRENT}" "N/A"

# Show iOS SDK comparison
if [ "$IOS_SDK_LATEST" != "unknown" ] && [ "$IOS_SDK_CURRENT" != "$IOS_SDK_LATEST" ]; then
printf " %-20s %-15s ${GREEN}%-15s${NC}\n" "iOS SDK" "${IOS_SDK_CURRENT}" "${IOS_SDK_LATEST} ⬆"
else
printf " %-20s %-15s %-15s\n" "iOS SDK" "${IOS_SDK_CURRENT}" "${IOS_SDK_LATEST}"
fi

# Show Android SDK comparison
if [ "$ANDROID_SDK_LATEST" != "unknown" ] && [ "$ANDROID_SDK_CURRENT" != "$ANDROID_SDK_LATEST" ]; then
printf " %-20s %-15s ${GREEN}%-15s${NC}\n" "Android SDK" "${ANDROID_SDK_CURRENT}" "${ANDROID_SDK_LATEST} ⬆"
else
printf " %-20s %-15s %-15s\n" "Android SDK" "${ANDROID_SDK_CURRENT}" "${ANDROID_SDK_LATEST}"
fi

echo ""
}

Expand All @@ -47,12 +94,12 @@ prompt_version() {
local current=$1
local name=$2
local default=$3

if [ -z "$default" ]; then
default=$current
fi
read -p "$name version [$default]: " version

read -p "$name version [$default]: " version >&2
version=${version:-$default}
echo $version
}
Expand All @@ -73,33 +120,27 @@ update_versions() {
# Podspec file
if [ -f "AirshipFrameworkProxy.podspec" ]; then
echo -e "${INFO} Updating AirshipFrameworkProxy.podspec"
sed -i '' "s/s.version[[:space:]]*=[[:space:]]*\"[0-9]*\.[0-9]*\.[0-9]*\"/s.version = \"${proxy_version}\"/" AirshipFrameworkProxy.podspec
sed -i '' "s/s.dependency[[:space:]]*'Airship',[[:space:]]*\"[0-9]*\.[0-9]*\.[0-9]*\"/s.dependency 'Airship', \"${ios_sdk_version}\"/" AirshipFrameworkProxy.podspec
# Match version pattern more flexibly (handles numbers or corrupted values)
sed -i '' "s/\(s.version[[:space:]]*=[[:space:]]*\)\"[^\"]*\"/\1\"${proxy_version}\"/" AirshipFrameworkProxy.podspec
sed -i '' "s/\(s.dependency[[:space:]]*'Airship',[[:space:]]*\)\"[^\"]*\"/\1\"${ios_sdk_version}\"/" AirshipFrameworkProxy.podspec
else
echo -e "${WARN} AirshipFrameworkProxy.podspec not found"
fi

# Package.swift
if [ -f "Package.swift" ]; then
echo -e "${INFO} Updating Package.swift"
sed -i '' "s/from: \"[0-9]*\.[0-9]*\.[0-9]*\"/from: \"${ios_sdk_version}\"/" Package.swift
sed -i '' "s/\(from: \)\"[^\"]*\"/\1\"${ios_sdk_version}\"/" Package.swift
else
echo -e "${WARN} Package.swift not found"
fi

# iOS Podfile
if [ -f "ios/Podfile" ]; then
echo -e "${INFO} Updating ios/Podfile"
sed -i '' "s/pod 'Airship', '[0-9]*\.[0-9]*\.[0-9]*'/pod 'Airship', '${ios_sdk_version}'/" ios/Podfile
else
echo -e "${WARN} ios/Podfile not found"
fi


# Android libs.versions.toml
if [ -f "android/gradle/libs.versions.toml" ]; then
echo -e "${INFO} Updating android/gradle/libs.versions.toml"
sed -i '' "s/airshipProxy = '[0-9]*\.[0-9]*\.[0-9]*'/airshipProxy = '${proxy_version}'/" android/gradle/libs.versions.toml
sed -i '' "s/airship = '[0-9]*\.[0-9]*\.[0-9]*'/airship = '${android_sdk_version}'/" android/gradle/libs.versions.toml
# Match version pattern more flexibly (handles numbers or corrupted values)
sed -i '' "s/\(^airshipProxy = \)'[^']*'/\1'${proxy_version}'/" android/gradle/libs.versions.toml
sed -i '' "s/\(^airship = \)'[^']*'/\1'${android_sdk_version}'/" android/gradle/libs.versions.toml
else
echo -e "${WARN} android/gradle/libs.versions.toml not found"
fi
Expand All @@ -110,22 +151,23 @@ update_versions() {
# Verify changes
verify_changes() {
echo -e "\n${INFO} Verifying changes..."
git diff --color AirshipFrameworkProxy.podspec Package.swift ios/Podfile android/gradle/libs.versions.toml

git diff --color AirshipFrameworkProxy.podspec Package.swift android/gradle/libs.versions.toml

echo -e "\n${INFO} Next steps:"
echo -e " 1. Review the changes above"
echo -e " 2. Run 'pod install' in the ios directory"
echo -e " 3. PR the changes"
echo -e " 2. Commit and push the changes"
echo -e " 3. Create a PR"
}

# Main execution
get_latest_releases
get_current_versions

echo -e "${BLUE}${BOLD}Enter new versions (press Enter to keep current)${NC}"
PROXY_VERSION=$(prompt_version "$PROXY_CURRENT" "Proxy" "14.1.1")
IOS_SDK_VERSION=$(prompt_version "$IOS_SDK_CURRENT" "iOS SDK" "19.2.1")
ANDROID_SDK_VERSION=$(prompt_version "$ANDROID_SDK_CURRENT" "Android SDK" "19.5.1")
PROXY_VERSION=$(prompt_version "$PROXY_CURRENT" "Proxy")
IOS_SDK_VERSION=$(prompt_version "$IOS_SDK_CURRENT" "iOS SDK")
ANDROID_SDK_VERSION=$(prompt_version "$ANDROID_SDK_CURRENT" "Android SDK")

update_versions "$PROXY_VERSION" "$IOS_SDK_VERSION" "$ANDROID_SDK_VERSION"
verify_changes
Expand Down
Loading