#!/bin/bash # SPDX-License-Identifier: MIT # # Debug loop from the source tree: # # ./forgejo/upgrades/test-upgrade.sh dependencies # ./forgejo/upgrades/test-upgrade.sh build_all # VERBOSE=true ./forgejo/upgrades/test-upgrade.sh test_downgrade_1.20.2_fails # # Everything happens in /tmp/forgejo-upgrades # SELF_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SELF="${BASH_SOURCE[0]}" source $SELF_DIR/../../lib/lib.sh STORAGE_PATHS="attachments avatars lfs packages repo-archive repo-avatars" STORAGE_FUN="attachments avatars lfs packages repo_archive repo_avatars" : ${FORGEJO_REPO:=fixture} source $SELF_DIR/fixtures.sh function reset() { local config=$1 reset_forgejo $SELF_DIR/$config-app.ini reset_minio reset_garage } 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_storage_stable_s3() { local work_path=$DIR/forgejo-work-path local s3_backend=${1:-minio} log_info "See also https://codeberg.org/forgejo/forgejo/issues/1338" for version in 1.18 1.19 1.20.2-0 1.20.3-0 1.20 1.21 $RELEASE_NUMBERS_AND_DEV ; do log_info "Forgejo $version & $s3_backend" stop reset stable-s3 start $version $s3_backend fixture_create for fun in ${STORAGE_FUN} ; do fixture_${fun}_assert_s3 done done } function test_successful_upgrades() { stop for config in default specific ; do log_info "using $config app.ini" reset $config for version in 1.18 1.19 1.20.2-0 1.20.3-0 1.20 1.21 $RELEASE_NUMBERS_AND_DEV ; do log_info "run $version" cleanup_storage start $version verify_storage stop done done } function test_forgejo_database_version() { local expected_version=$1 local work_path=$DIR/forgejo-work-path actual_version=$(sqlite3 $work_path/forgejo.db "select version from forgejo_version") test "$expected_version" = "$actual_version" } source $SELF_DIR/test-upgrade-1.20-storage.sh source $SELF_DIR/test-upgrade-forgejo-database-v3.sh source $SELF_DIR/../../packages/packages.sh function test_upgrades() { run stop run dependencies run build_all test_packages run test_successful_upgrades run test_storage_stable_s3 minio run test_storage_stable_s3 garage test_upgrade_1_20_storage run test_forgejo_database_v3_upgrades } "$@"