check new version
Some checks failed
Ansible Minecraft Server CI/CD / lint (push) Failing after 21s
Ansible Minecraft Server CI/CD / test (push) Has been skipped
Ansible Minecraft Server CI/CD / deploy (push) Has been skipped

This commit is contained in:
2025-08-27 07:59:19 +02:00
parent 7a2ccb537b
commit 9ea9ac7254
125 changed files with 2696 additions and 1511 deletions

View File

@@ -1,18 +1,36 @@
#!/bin/bash
# {{ ansible_managed }}
OLD_VERSION="$1"
NEW_VERSION="$2"
STAGING_DIR="{{ update_staging_dir }}"
SERVER_DIR="{{ minecraft_server_dir }}"
BACKUP_DIR="{{ minecraft_backups_dir }}/version_backup"
PREVIOUS_DIR="{{ spigot_previous_dir }}"
DATE=$(date +%Y%m%d_%H%M%S)
# Create backup directory
mkdir -p "${BACKUP_DIR}"
# Create previous directory if not exists
mkdir -p "$PREVIOUS_DIR"
# Backup current version
mv "${SERVER_DIR}" "${BACKUP_DIR}/server_${OLD_VERSION}_$(date +%Y%m%d_%H%M%S)"
# Backup current server
echo "Backing up current server..."
tar -czf "$PREVIOUS_DIR/server_before_update_$DATE.tar.gz" \
-C "$SERVER_DIR" \
--exclude='world*' \
--exclude='logs' \
--exclude='crash-reports' \
.
# Switch to new version
mv "${SERVER_DIR}_${NEW_VERSION}" "${SERVER_DIR}"
# Sync new version to server directory
echo "Switching to new version..."
rsync -av --delete \
--exclude='world*' \
--exclude='logs' \
--exclude='crash-reports' \
--exclude='plugins/*.yml' \
--exclude='ops.json' \
--exclude='whitelist.json' \
--exclude='banned-*.json' \
"$STAGING_DIR/" "$SERVER_DIR/"
echo "Version switched from ${OLD_VERSION} to ${NEW_VERSION}"
exit 0
# Set permissions
chown -R {{ minecraft_user }}:{{ minecraft_group }} "$SERVER_DIR"
echo "Version switch completed!"