mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-15 07:55:31 +00:00
Do not update release channels if the new build has a lower version ID
this prevents stuff like 5.0.0 beta versions getting overwritten by 4.x beta versions.
This commit is contained in:
parent
acebbeed16
commit
83945ff0a0
39
.github/workflows/update-updater-api.yml
vendored
39
.github/workflows/update-updater-api.yml
vendored
@ -41,9 +41,42 @@ jobs:
|
|||||||
|
|
||||||
- name: Update channel info
|
- name: Update channel info
|
||||||
run: |
|
run: |
|
||||||
cp new_build_info.json "channels/${{ steps.channel.outputs.CHANNEL }}.json"
|
function version_id() {
|
||||||
cp new_build_info.json "channels/${{ steps.channel.outputs.MAJOR }}.json"
|
major=$(echo $1 | cut -d. -f1)
|
||||||
cp new_build_info.json "channels/${{ steps.channel.outputs.MINOR }}.json"
|
minor=$(echo $1 | cut -d. -f2)
|
||||||
|
patch=$(echo $1 | cut -d. -f3)
|
||||||
|
echo $(((major * 1000000) + (minor * 1000) + patch))
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_channel() {
|
||||||
|
local target_file_name="$1"
|
||||||
|
local new_file_name="$2"
|
||||||
|
|
||||||
|
local old_version_id
|
||||||
|
local new_version_id
|
||||||
|
|
||||||
|
if [ ! -f "$target_file_name" ]; then
|
||||||
|
echo "Creating channel file: $target_file_name"
|
||||||
|
cp "$new_file_name" "$target_file_name"
|
||||||
|
else
|
||||||
|
old_version_id=$(version_id "$(jq -r '.base_version' "$target_file_name")")
|
||||||
|
new_version_id=$(version_id "$(jq -r '.base_version' "$new_file_name")")
|
||||||
|
|
||||||
|
echo "Old version ID: $old_version_id"
|
||||||
|
echo "New version ID: $new_version_id"
|
||||||
|
|
||||||
|
if [ $new_version_id -ge $old_version_id ]; then #suffixed versions will have the same version ID - assume they'll always be newer
|
||||||
|
echo "Updating channel file: $target_file_name ($old_version_id -> $new_version_id)"
|
||||||
|
cp "$new_file_name" "$target_file_name"
|
||||||
|
else
|
||||||
|
echo "Version $new_version_id is less than $old_version_id, not updating channel file: $target_file_name"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
update_channel "channels/${{ steps.channel.outputs.CHANNEL }}.json" "new_build_info.json"
|
||||||
|
update_channel "channels/${{ steps.channel.outputs.MAJOR }}.json" "new_build_info.json"
|
||||||
|
update_channel "channels/${{ steps.channel.outputs.MINOR }}.json" "new_build_info.json"
|
||||||
rm new_build_info.json
|
rm new_build_info.json
|
||||||
|
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user