end-to-end/upgrade/upgrade.sh
2024-04-13 16:41:24 +02:00

106 lines
2.3 KiB
Bash
Executable file

# SPDX-License-Identifier: MIT
UPGRADE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
function upgrade_reset() {
local config=$1
reset_forgejo $UPGRADE_DIR/$config-app.ini
reset_minio
}
function verify_storage() {
local work_path=$DIR/forgejo-work-path
for path in ${STORAGE_PATHS} ; do
test -d $work_path/data/$path
done
}
function cleanup_storage() {
local work_path=$DIR/forgejo-work-path
for path in ${STORAGE_PATHS} ; do
rm -fr $work_path/data/$path
done
}
function test_successful_upgrades() {
stop
for config in default ; do
log_info "using $config app.ini"
upgrade_reset $config
version=1.18
log_info "run $version"
cleanup_storage
start $version
fixture_create
fixture_assert
doctor_run $version
for version in 1.19 1.20 1.21 $RELEASE_NUMBERS_AND_DEV ; do
stop
log_info "run $version"
start $version
verify_storage
fixture_assert
doctor_run $version
done
done
}
function download_gitea() {
local version=$1
if ! test -f $DIR_BINARIES/gitea-$version ; then
mkdir -p $DIR_BINARIES
wget -O $DIR_BINARIES/gitea-$version --quiet https://dl.gitea.com/gitea/$version/gitea-$version-linux-amd64
chmod +x $DIR_BINARIES/gitea-$version
fi
}
function start_gitea() {
local version=$1
download_gitea $version
start_forgejo_daemon $version $DIR_BINARIES/gitea-$version
}
function test_gitea_upgrades() {
stop
for config in default ; do
log_info "using $config app.ini"
upgrade_reset $config
version=1.21.10
log_info "run gitea $version"
cleanup_storage
start_s3 minio
start_gitea $version
fixture_create
fixture_assert
doctor_run $version
for version in 7.0-test ; do
stop
log_info "run forgejo $version"
start $version
verify_storage
fixture_assert
doctor_run $version
done
done
}
source $UPGRADE_DIR/test-upgrade-forgejo-database-v3.sh
source $UPGRADE_DIR/test-pprof-upload.sh
function test_upgrades() {
run dependencies
run build_all
run test_successful_upgrades
run test_forgejo_database_v3_upgrades
run test_forgejo_pprof
run test_gitea_upgrades
}