我在monorepo中有一个项目。它包含一堆文件,其中提到了应用程序版本:
./app/app.json <- expo.io
./app/package.json
./api/package.json
./cloud-functions/<15 cloud functions here>/package.json
etc...
我有各种部署脚本,每个脚本都需要版本号。严格来说,每次合并时,我都必须更新版本到git的主要dev
分支。
是否有一种惯例或在某处管理版本代码的事情?
目前,我使用它,也许有人会改进它?
#!/bin/bash
OLD_VERSION=`cat scripts/current-version-code`
echo $NEW_VERSION
if [ -z "$1" ]; then
read -p "Current version is $NEW_VERSION. What is new version? " NEW_VERSION
else
NEW_VERSION=$1
fi
if [ -z "$NEW_VERSION" ]
then
echo "No version specified"
exit 1
fi
sed -e "/\"version\":.*$/{s//\"version\": \"$NEW_VERSION\",/;:a" -e '$!N;$!ba' -e "}" -i '' 'api-server/package.json'
sed -e "/\"version\":.*$/{s//\"version\": \"$NEW_VERSION\",/;:a" -e '$!N;$!ba' -e "}" -i '' 'cloud-functions/deleteTransactions/package.json'
sed -e "/\"version\":.*$/{s//\"version\": \"$NEW_VERSION\",/;:a" -e '$!N;$!ba' -e "}" -i '' 'cloud-functions/emailSend/package.json'
sed -e "/\"version\":.*$/{s//\"version\": \"$NEW_VERSION\",/;:a" -e '$!N;$!ba' -e "}" -i '' 'cloud-functions/exportUsersBq/package.json'
sed -e "/\"version\":.*$/{s//\"version\": \"$NEW_VERSION\",/;:a" -e '$!N;$!ba' -e "}" -i '' 'cloud-functions/getWholesalers/package.json'
sed -e "/\"version\":.*$/{s//\"version\": \"$NEW_VERSION\",/;:a" -e '$!N;$!ba' -e "}" -i '' 'cloud-functions/mongoUpdateByWholesaler/package.json'
sed -e "/\"version\":.*$/{s//\"version\": \"$NEW_VERSION\",/;:a" -e '$!N;$!ba' -e "}" -i '' 'admin/package.json'
sed -e "/\"version\":.*$/{s//\"version\": \"$NEW_VERSION\",/;:a" -e '$!N;$!ba' -e "}" -i '' 'expo-app/package.json'
sed -i '' "s|$OLD_VERSION|$NEW_VERSION|g" 'expo-app/app.json'
sed -i '' "s|$OLD_VERSION|$NEW_VERSION|g" 'scripts/current-version-code'