@@ -44,13 +44,18 @@ if [ -z "$1" ]; then
44
44
exit 1
45
45
fi
46
46
47
+
48
+ # ############################
49
+ # VALIDATE VERSION NUMBER #
50
+ # ############################
51
+
47
52
VERSION=" $1 "
48
53
if ! parseVersion " $VERSION " ; then
49
54
echo " [ERROR] Illegal version number provided. Version number must match semver."
50
55
exit 1
51
56
fi
52
57
53
- CUR_VERSION=` grep " ^__version__ =" ../firebase_admin/__init__.py | awk ' {print $3}' | sed " s/'//g" `
58
+ CUR_VERSION=$( grep " ^__version__ =" ../firebase_admin/__init__.py | awk ' {print $3}' | sed " s/'//g" )
54
59
if [ -z " $CUR_VERSION " ]; then
55
60
echo " [ERROR] Failed to find the current version. Check firebase_admin/__init__.py for version declaration."
56
61
exit 1
@@ -65,15 +70,10 @@ if ! isNewerVersion "$VERSION" "$CUR_VERSION"; then
65
70
exit 1
66
71
fi
67
72
68
- CHECKED_OUT_BRANCH=" $( git branch | grep " *" | awk -F ' ' ' {print $2}' ) "
69
- if [[ $CHECKED_OUT_BRANCH != " master" ]]; then
70
- echo " [ERROR] You are on the '${CHECKED_OUT_BRANCH} ' branch. Release must be prepared from the 'master' branch."
71
- exit 1
72
- fi
73
- if [[ ` git status --porcelain` ]]; then
74
- echo " [ERROR] Local changes exist in the repo. Resolve local changes before release."
75
- exit 1
76
- fi
73
+
74
+ # ############################
75
+ # VALIDATE TEST RESOURCES #
76
+ # ############################
77
77
78
78
if [[ ! -e " cert.json" ]]; then
79
79
echo " [ERROR] cert.json file is required to run integration tests."
@@ -85,14 +85,57 @@ if [[ ! -e "apikey.txt" ]]; then
85
85
exit 1
86
86
fi
87
87
88
+
89
+ # ##################
90
+ # VALIDATE REPO #
91
+ # ##################
92
+
93
+ # Ensure the checked out branch is master
94
+ CHECKED_OUT_BRANCH=" $( git branch | grep " *" | awk -F ' ' ' {print $2}' ) "
95
+ if [[ $CHECKED_OUT_BRANCH != " master" ]]; then
96
+ read -p " [WARN] You are on the '${CHECKED_OUT_BRANCH} ' branch, not 'master'. Continue? (Y/n) " CONTINUE
97
+ echo
98
+
99
+ if ! [[ $CONTINUE == " Y" ]]; then
100
+ echo " [INFO] You chose not to continue."
101
+ exit 1
102
+ fi
103
+ fi
104
+
105
+ # Ensure the branch does not have local changes
106
+ if [[ $( git status --porcelain) ]]; then
107
+ read -p " [WATN] Local changes exist in the repo. Continue? (Y/n) " CONTINUE
108
+ echo
109
+
110
+ if ! [[ $CONTINUE == " Y" ]]; then
111
+ echo " [INFO] You chose not to continue."
112
+ exit 1
113
+ fi
114
+ fi
115
+
116
+
117
+ # #################################
118
+ # UPDATE VERSION AND CHANGELOG #
119
+ # #################################
120
+
88
121
HOST=$( uname)
89
- echo " [INFO] Updating version number in firebase_admin/ __init__.py"
122
+ echo " [INFO] Updating __init__.py and CHANGELOG.md "
90
123
if [ $HOST == " Darwin" ]; then
91
124
sed -i " " -e " s/__version__ = '$CUR_VERSION '/__version__ = '$VERSION '/" " ../firebase_admin/__init__.py"
125
+ sed -i " " -e " 1 s/# Unreleased//" " ../CHANGELOG.md"
92
126
else
93
- sed --in-place -e " s/__version__ = '$CUR_VERSION '/__version__ = '$VERSION '/" " ../firebase_admin/__init__.py"
127
+ sed -i -e " s/__version__ = '$CUR_VERSION '/__version__ = '$VERSION '/" " ../firebase_admin/__init__.py"
128
+ sed -i -e " 1 s/# Unreleased//" " ../CHANGELOG.md"
94
129
fi
95
130
131
+ echo -e " # Unreleased\n\n-\n\n# v${VERSION} " | cat - ../CHANGELOG.md > TEMP_CHANGELOG.md
132
+ mv TEMP_CHANGELOG.md ../CHANGELOG.md
133
+
134
+
135
+ # #################
136
+ # LAUNCH TESTS #
137
+ # #################
138
+
96
139
echo " [INFO] Running unit tests"
97
140
tox
98
141
0 commit comments