-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathupdate-app-info-version.sh
executable file
·54 lines (46 loc) · 2.46 KB
/
update-app-info-version.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/bash
# Simulate the GitHub environment variable
#export GITHUB_HEAD_REF="refs/heads/release/3.0.1"
# Source branch name (release/#.#.#)
BRANCH_NAME=${GITHUB_HEAD_REF##*/}
# Extract version from the branch name (e.g., release/3.0.0 -> 3.0.0)
BRANCH_VERSION=${BRANCH_NAME#release/}
# Path to the AdyenOMSConstants.cls file
APEX_FILE="force-app/main/default/classes/AdyenOMSConstants.cls"
# Read version from sfdx-project.json
PROJECT_OMS_VERSION=$(yq -r '.packageDirectories[] | select(.default == true) | .versionNumber' sfdx-project.json | sed 's/.NEXT//')
PROJECT_LIBRARY_VERSION=$(yq -r '.packageDirectories[].dependencies[]? | select(.package | test("API Library Apex Adyen@")) | .package' sfdx-project.json | sed -E 's/.*@([0-9]+\.[0-9]+\.[0-9]+).*/\1/')
# Read version from AdyenOMSConstants.cls using awk for single quotes
APEX_OMS_VERSION=$(awk -F"[']" '/MERCHANT_APP_VERSION_FOR_APP_INFO/ {print $2}' "$APEX_FILE")
APEX_LIBRARY_VERSION=$(awk -F"[']" '/ADYEN_LIBRARY_VERSION_FOR_APP_INFO/ {print $2}' "$APEX_FILE")
printf "\n"
echo "Branch: $BRANCH_NAME"
printf "%-25s %-25s\n" "sfdx-project.json" "AdyenOMSConstants"
printf "%-25s %-25s\n" "-------------------------" "-------------------------"
printf "%-25s %-25s\n" "$PROJECT_OMS_VERSION (OMS)" "$APEX_OMS_VERSION (OMS)"
printf "%-25s %-25s\n" "$PROJECT_LIBRARY_VERSION (Library)" "$APEX_LIBRARY_VERSION (Library)"
printf "\n"
# Check if BASE_VERSION matches PROJECT_OMS_VERSION
if [ "$BRANCH_VERSION" != "$PROJECT_OMS_VERSION" ]; then
echo "Version mismatch detected between branch version and SFDX project version."
echo "Stopping execution."
exit 1
fi
# Flags to check if updates are needed
UPDATE_OMS=false
UPDATE_LIBRARY=false
# Update AdyenOMSConstants.cls only if needed
if [ "$BRANCH_VERSION" != "$APEX_OMS_VERSION" ]; then
echo "Updating AdyenOMSConstants.MERCHANT_APP_VERSION_FOR_APP_INFO to version $PROJECT_OMS_VERSION"
sed -i "s/\(MERCHANT_APP_VERSION_FOR_APP_INFO = '\)[^']*'/\1$PROJECT_OMS_VERSION'/" "$APEX_FILE"
UPDATE_OMS=true
else
echo "AdyenOMSConstants.MERCHANT_APP_VERSION_FOR_APP_INFO is already up to date."
fi
if [ "$PROJECT_LIBRARY_VERSION" != "$APEX_LIBRARY_VERSION" ]; then
echo "Updating AdyenOMSConstants.ADYEN_LIBRARY_VERSION_FOR_APP_INFO to version $PROJECT_LIBRARY_VERSION"
sed -i "s/\(ADYEN_LIBRARY_VERSION_FOR_APP_INFO = '\)[^']*'/\1$PROJECT_LIBRARY_VERSION'/" "$APEX_FILE"
UPDATE_LIBRARY=true
else
echo "AdyenOMSConstants.ADYEN_LIBRARY_VERSION_FOR_APP_INFO is already up to date."
fi