end-to-end/upgrade/upgrade.sh
Earl Warren 944dd98727
test Gitea upgrades with v7.0 and v9.0
the upgrade path from Gitea v1.21 & v1.22 to v8.0 was tested before it
was published. The patch releases for v8.0 will only include bug fixes
and no database upgrades: they are the only kind of changes that could
cause a problem with upgrades.
2024-08-07 11:42:22 +02:00

89 lines
2 KiB
Bash
Executable file

# SPDX-License-Identifier: MIT
UPGRADE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
function upgrade_reset() {
local config=$1
reset_forgejo $config
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 $UPGRADE_DIR/default-app.ini; do
log_info "using $config"
upgrade_reset $config
version=7.0
log_info "run $version"
cleanup_storage
start $version
fixture_create
fixture_assert
doctor_run $config
for version in $RELEASE_NUMBERS_AND_DEV; do
stop
log_info "run $version"
start $version
verify_storage
fixture_assert
doctor_run $config
done
done
}
function test_gitea_upgrades() {
local config=$UPGRADE_DIR/default-app.ini
(
echo gitea 1.21 forgejo 7.0-dev
echo gitea 1.21 forgejo 9.0-dev
echo gitea 1.22 forgejo 9.0-dev
) | while read gitea gitea_version forgejo forgejo_version; do
log_info "upgrading from Gitea $gitea_version to Forgejo $forgejo_version"
stop
upgrade_reset $config
log_info "run Gitea $gitea_version"
cleanup_storage
start_s3 minio
start_gitea $gitea_version $config
fixture_create
fixture_assert
doctor_run $config
stop
log_info "run Forgejo $forgejo_version"
start $forgejo_version
verify_storage
fixture_assert
doctor_run $config
done
}
source $UPGRADE_DIR/test-pprof-upload.sh
function test_upgrades() {
run dependencies
run build_all
run test_successful_upgrades
run test_forgejo_pprof
run test_gitea_upgrades
}