我如何在所有代码实例中管理应用程序版本?

问题描述 投票:0回答:1

我在monorepo中有一个项目。它包含一堆文件,其中提到了应用程序版本:

./app/app.json <- expo.io
./app/package.json
./api/package.json
./cloud-functions/<15 cloud functions here>/package.json
etc...

我有各种部署脚本,每个脚本都需要版本号。严格来说,每次合并时,我都必须更新版本到git的主要dev分支。

是否有一种惯例或在某处管理版本代码的事情?

version versioning
1个回答
0
投票

目前,我使用它,也许有人会改进它?

#!/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'
© www.soinside.com 2019 - 2024. All rights reserved.