mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-07-29 07:53:37 +00:00
Update release.sh
This commit is contained in:
parent
83426f7f36
commit
48d9fc24eb
@ -23,7 +23,7 @@ grep_prop() {
|
|||||||
sed -n "$REGEX" $FILES | head -n 1
|
sed -n "$REGEX" $FILES | head -n 1
|
||||||
}
|
}
|
||||||
|
|
||||||
enable_version_config() {
|
ensure_config() {
|
||||||
# Make sure version is not commented out and exists
|
# Make sure version is not commented out and exists
|
||||||
sed -i "s:^# version=:version=:g" $CONFIG
|
sed -i "s:^# version=:version=:g" $CONFIG
|
||||||
if ! grep -qE '^version=' $CONFIG; then
|
if ! grep -qE '^version=' $CONFIG; then
|
||||||
@ -38,57 +38,72 @@ disable_version_config() {
|
|||||||
sed -i "s:^version=:# version=:g" $CONFIG
|
sed -i "s:^version=:# version=:g" $CONFIG
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1 = tag
|
|
||||||
update_readme_stable() {
|
|
||||||
sed -i "s:badge/Magisk-v.*:badge/Magisk-${1}-blue)](https\://github.com/topjohnwu/Magisk/releases/tag/$1):g" $README
|
|
||||||
}
|
|
||||||
|
|
||||||
# $1 = tag
|
|
||||||
update_readme_beta() {
|
|
||||||
sed -i "s:badge/Magisk%20Beta.*:badge/Magisk%20Beta-${1}-blue)](https\://github.com/topjohnwu/Magisk/releases/tag/$1):g" $README
|
|
||||||
}
|
|
||||||
|
|
||||||
# $1 = tag
|
# $1 = tag
|
||||||
update_readme_canary() {
|
update_readme_canary() {
|
||||||
sed -i "s:badge/Magisk-Canary.*:badge/Magisk-Canary-red)](https\://github.com/topjohnwu/Magisk/releases/tag/$1):g" $README
|
sed -i "s:badge/Magisk-Canary.*:badge/Magisk-Canary-red)](https\://github.com/topjohnwu/Magisk/releases/tag/$1):g" $README
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# $1 = tag
|
||||||
|
update_readme_beta() {
|
||||||
|
update_readme_canary $1
|
||||||
|
sed -i "s:badge/Magisk%20Beta.*:badge/Magisk%20Beta-${1}-blue)](https\://github.com/topjohnwu/Magisk/releases/tag/$1):g" $README
|
||||||
|
}
|
||||||
|
|
||||||
|
# $1 = tag
|
||||||
|
update_readme_stable() {
|
||||||
|
update_readme_beta $1
|
||||||
|
sed -i "s:badge/Magisk-v.*:badge/Magisk-${1}-blue)](https\://github.com/topjohnwu/Magisk/releases/tag/$1):g" $README
|
||||||
|
}
|
||||||
|
|
||||||
|
# $1 = tag
|
||||||
|
# $2 = file name
|
||||||
gen_link() {
|
gen_link() {
|
||||||
echo "https://github.com/topjohnwu/Magisk/releases/download/$1/$2"
|
echo "https://github.com/topjohnwu/Magisk/releases/download/$1/$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
update_canary_json() {
|
# $1 = version code
|
||||||
local ver=$(grep_prop version $CONFIG)
|
is_canary() {
|
||||||
local code=$(grep_prop magisk.versionCode $GCONFIG)
|
[ $(($1 % 100)) -ne 0 ]
|
||||||
local tag="canary-$code"
|
|
||||||
local json
|
|
||||||
|
|
||||||
json=$MAGISK_FILES/canary.json
|
|
||||||
jq ".magisk.version=\"$ver\"|.magisk.versionCode=\"$code\"|
|
|
||||||
.magisk.link=\"$(gen_link $tag app-release.apk)\"|
|
|
||||||
.magisk.note=\"$(gen_link $tag notes.md)\"" $json > ${json}.tmp
|
|
||||||
mv ${json}.tmp $json
|
|
||||||
|
|
||||||
json=$MAGISK_FILES/debug.json
|
|
||||||
jq ".magisk.version=\"$ver\"|.magisk.versionCode=\"$code\"|
|
|
||||||
.magisk.link=\"$(gen_link $tag app-debug.apk)\"|
|
|
||||||
.magisk.note=\"$(gen_link $tag notes.md)\"" $json > ${json}.tmp
|
|
||||||
mv ${json}.tmp $json
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1 = json path
|
# $1 = json path
|
||||||
update_release_json() {
|
# $2 = apk name
|
||||||
|
update_json() {
|
||||||
local json=$1
|
local json=$1
|
||||||
|
local apk=$2
|
||||||
local ver=$(grep_prop version $CONFIG)
|
local ver=$(grep_prop version $CONFIG)
|
||||||
local code=$(grep_prop magisk.versionCode $GCONFIG)
|
local code=$(grep_prop magisk.versionCode $GCONFIG)
|
||||||
|
|
||||||
|
local tag
|
||||||
|
if is_canary $code; then
|
||||||
|
tag="canary-$code"
|
||||||
|
else
|
||||||
|
tag="v$ver"
|
||||||
|
fi
|
||||||
|
|
||||||
jq ".magisk.version=\"$ver\"|.magisk.versionCode=\"$code\"|
|
jq ".magisk.version=\"$ver\"|.magisk.versionCode=\"$code\"|
|
||||||
.magisk.link=\"$(gen_link v${ver} Magisk-v${ver}.apk)\"|
|
.magisk.link=\"$(gen_link $tag $apk)\"|
|
||||||
.magisk.note=\"https://topjohnwu.github.io/Magisk/releases/${code}.md\"" $json > ${json}.tmp
|
.magisk.note=\"$(gen_link $tag notes.md)\"" $json > ${json}.tmp
|
||||||
mv ${json}.tmp $json
|
mv ${json}.tmp $json
|
||||||
}
|
}
|
||||||
|
|
||||||
build_canary() {
|
update_canary_json() {
|
||||||
|
update_json $MAGISK_FILES/canary.json app-release.apk
|
||||||
|
update_json $MAGISK_FILES/debug.json app-debug.apk
|
||||||
|
}
|
||||||
|
|
||||||
|
update_beta_json() {
|
||||||
|
update_json $MAGISK_FILES/canary.json Magisk-v${ver}.apk
|
||||||
|
update_json $MAGISK_FILES/debug.json app-debug.apk
|
||||||
|
cp -vf $MAGISK_FILES/canary.json $MAGISK_FILES/beta.json
|
||||||
|
}
|
||||||
|
|
||||||
|
update_stable_json() {
|
||||||
|
update_beta_json
|
||||||
|
cp -vf $MAGISK_FILES/beta.json $MAGISK_FILES/stable.json
|
||||||
|
}
|
||||||
|
|
||||||
|
bump_canary_version() {
|
||||||
# Update version code
|
# Update version code
|
||||||
local code=$(grep_prop magisk.versionCode $GCONFIG)
|
local code=$(grep_prop magisk.versionCode $GCONFIG)
|
||||||
code=$((code + 1))
|
code=$((code + 1))
|
||||||
@ -105,47 +120,35 @@ build_canary() {
|
|||||||
# Update version name
|
# Update version name
|
||||||
local ver=$(git rev-parse --short=8 HEAD)
|
local ver=$(git rev-parse --short=8 HEAD)
|
||||||
sed -i "s:version=.*:version=${ver}:g" $CONFIG
|
sed -i "s:version=.*:version=${ver}:g" $CONFIG
|
||||||
sed -i "s:## Magisk (.*:## Magisk (${ver}) (${code}):g" $NOTES
|
sed -i "1s:.*:## Magisk (${ver}) (${code}):" $NOTES
|
||||||
|
|
||||||
# Update and commit JSON
|
|
||||||
update_canary_json
|
update_canary_json
|
||||||
|
|
||||||
|
# Commit json files
|
||||||
cd $MAGISK_FILES
|
cd $MAGISK_FILES
|
||||||
git add -u .
|
git add -u .
|
||||||
git status
|
git status
|
||||||
git commit -m "Update Canary Channel: Upstream to $ver"
|
git commit -m "Update Canary Channel: Upstream to $ver"
|
||||||
cd $CWD
|
cd $CWD
|
||||||
|
|
||||||
# Build
|
|
||||||
$BUILDCMD clean
|
|
||||||
$BUILDCMD all
|
|
||||||
$BUILDCMD -r all
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1 = ver, $2 = stable?
|
# $1 = ver, $2 = stable?
|
||||||
build_release() {
|
set_version() {
|
||||||
# Update version configs
|
|
||||||
local ver=$1
|
local ver=$1
|
||||||
local stable=$2
|
local stable=$2
|
||||||
local code=$(echo - | awk "{ print $ver * 1000 }")
|
local code=$(echo - | awk "{ print $ver * 1000 }")
|
||||||
local tag="v$ver"
|
local tag="v$ver"
|
||||||
|
|
||||||
sed -i "s:versionCode=.*:versionCode=${code}:g" $GCONFIG
|
sed -i "s:versionCode=.*:versionCode=${code}:g" $GCONFIG
|
||||||
sed -i "s:version=.*:version=${ver}:g" $CONFIG
|
sed -i "s:version=.*:version=${ver}:g" $CONFIG
|
||||||
|
sed -i "1s:.*:## $(date +'%Y.%-m.%-d') Magisk v$ver:" $NOTES
|
||||||
|
|
||||||
# Update and commit JSON
|
|
||||||
if $stable; then
|
if $stable; then
|
||||||
update_readme_stable $tag
|
update_readme_stable $tag
|
||||||
update_readme_beta $tag
|
update_stable_json
|
||||||
update_release_json $MAGISK_FILES/stable.json
|
|
||||||
cp -vf $MAGISK_FILES/stable.json $MAGISK_FILES/beta.json
|
|
||||||
else
|
else
|
||||||
update_readme_beta $tag
|
update_readme_beta $tag
|
||||||
update_release_json $MAGISK_FILES/beta.json
|
update_beta_json
|
||||||
fi
|
fi
|
||||||
cd $MAGISK_FILES
|
|
||||||
git add -u .
|
|
||||||
git status
|
|
||||||
git commit -m "Release Magisk v$ver"
|
|
||||||
cd $CWD
|
|
||||||
|
|
||||||
# Commit version code changes
|
# Commit version code changes
|
||||||
git add -u .
|
git add -u .
|
||||||
@ -153,24 +156,46 @@ build_release() {
|
|||||||
git commit -m "Release Magisk v$ver" -m "[skip ci]"
|
git commit -m "Release Magisk v$ver" -m "[skip ci]"
|
||||||
git tag $tag
|
git tag $tag
|
||||||
|
|
||||||
# Build
|
# Commit json files
|
||||||
|
cd $MAGISK_FILES
|
||||||
|
git add -u .
|
||||||
|
git status
|
||||||
|
git commit -m "Release Magisk v$ver"
|
||||||
|
cd $CWD
|
||||||
|
}
|
||||||
|
|
||||||
|
build_apk() {
|
||||||
$BUILDCMD clean
|
$BUILDCMD clean
|
||||||
|
$BUILDCMD all
|
||||||
$BUILDCMD -r all
|
$BUILDCMD -r all
|
||||||
}
|
}
|
||||||
|
|
||||||
stable() {
|
build_canary() {
|
||||||
[ -z $1 ] && exit 1
|
bump_canary_version
|
||||||
local ver=$1
|
build_apk
|
||||||
build_release $ver true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
beta() {
|
# $1 = ver
|
||||||
|
build_beta() {
|
||||||
[ -z $1 ] && exit 1
|
[ -z $1 ] && exit 1
|
||||||
local ver=$1
|
local ver=$1
|
||||||
build_release $ver false
|
set_version $ver false
|
||||||
|
build_apk
|
||||||
}
|
}
|
||||||
|
|
||||||
pub() {
|
# $1 = ver
|
||||||
|
build_stable() {
|
||||||
|
[ -z $1 ] && exit 1
|
||||||
|
local ver=$1
|
||||||
|
set_version $ver true
|
||||||
|
build_apk
|
||||||
|
}
|
||||||
|
|
||||||
|
upload() {
|
||||||
|
# Verify pattern
|
||||||
|
[[ "$1" =~ canary|beta|stable ]]
|
||||||
|
local type=$1
|
||||||
|
|
||||||
gh auth status
|
gh auth status
|
||||||
|
|
||||||
local latest_tag=$(git describe --abbrev=0 --tags)
|
local latest_tag=$(git describe --abbrev=0 --tags)
|
||||||
@ -186,32 +211,43 @@ pub() {
|
|||||||
git push origin master
|
git push origin master
|
||||||
git push --tags
|
git push --tags
|
||||||
|
|
||||||
if [ $(($code % 100)) -ne 0 ]; then
|
# Prepare release notes
|
||||||
tag="canary-$code"
|
tail -n +3 $NOTES > release.md
|
||||||
title="Magisk ($ver) ($code)"
|
|
||||||
|
|
||||||
# Assert tag format
|
case $type in
|
||||||
[ $latest_tag = $tag ]
|
"canary" )
|
||||||
|
tag="canary-$code"
|
||||||
|
title="Magisk ($ver) ($code)"
|
||||||
|
|
||||||
# Publish release
|
# Assert tag format
|
||||||
tail -n +3 $NOTES > release.md
|
[ $latest_tag = $tag ]
|
||||||
gh release create --verify-tag $tag -p -t "$title" -F release.md $out/app-release.apk $out/app-debug.apk $NOTES
|
|
||||||
else
|
|
||||||
tag="v$ver"
|
|
||||||
title="Magisk v$ver"
|
|
||||||
|
|
||||||
# Assert tag format
|
# Publish release
|
||||||
[ $latest_tag = $tag ]
|
gh release create --verify-tag $tag -p -t "$title" -F release.md $out/app-release.apk $out/app-debug.apk $NOTES
|
||||||
|
;;
|
||||||
|
"beta|stable" )
|
||||||
|
tag="v$ver"
|
||||||
|
title="Magisk v$ver"
|
||||||
|
|
||||||
# Publish release
|
# Assert tag format
|
||||||
tail -n +3 docs/releases/$code.md > release.md
|
[ $latest_tag = $tag ]
|
||||||
local release_apk="Magisk-v${ver}.apk"
|
|
||||||
cp $out/app-release.apk $release_apk
|
# Publish release
|
||||||
gh release create --verify-tag $tag -t "$title" -F release.md $release_apk
|
local release_apk="Magisk-v${ver}.apk"
|
||||||
rm -f $release_apk
|
cp $out/app-release.apk $release_apk
|
||||||
|
gh release create --verify-tag $tag -p -t "$title" -F release.md $release_apk $out/app-debug.apk $NOTES
|
||||||
|
rm -f $release_apk
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If publishing stable, make it not prerelease and explicitly latest
|
||||||
|
if [ $type = "stable" ]; then
|
||||||
|
gh release edit $tag --prerelease=false --latest
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f release.md
|
rm -f release.md
|
||||||
|
|
||||||
|
# Finally upload jsons
|
||||||
cd $MAGISK_FILES
|
cd $MAGISK_FILES
|
||||||
git push origin master
|
git push origin master
|
||||||
cd $CWD
|
cd $CWD
|
||||||
@ -236,12 +272,12 @@ fi
|
|||||||
git pull
|
git pull
|
||||||
|
|
||||||
trap disable_version_config EXIT
|
trap disable_version_config EXIT
|
||||||
enable_version_config
|
ensure_config
|
||||||
case $1 in
|
case $1 in
|
||||||
"canary" ) build_canary ;;
|
"canary" ) build_canary ;;
|
||||||
"stable" ) stable $2 ;;
|
"beta" ) build_beta $2 ;;
|
||||||
"beta" ) beta $2 ;;
|
"stable" ) build_stable $2 ;;
|
||||||
"pub" ) pub ;;
|
"upload" ) upload $2 ;;
|
||||||
"revert" ) revert ;;
|
"revert" ) revert ;;
|
||||||
* ) exit 1 ;;
|
* ) exit 1 ;;
|
||||||
esac
|
esac
|
||||||
|
Loading…
x
Reference in New Issue
Block a user