diff --git a/forgejo/fixtures/storage.sh b/forgejo/fixtures/storage.sh index 1efffe1..0de79b5 100644 --- a/forgejo/fixtures/storage.sh +++ b/forgejo/fixtures/storage.sh @@ -7,6 +7,9 @@ # ONEPIXEL="iVBORw0KGgoAAAANSUhEUgAAASIAAAEiCAYAAABdvt+2AAADrElEQVR4nOzUMRHAMADEsL9eeQd6AsOLhMCT/7udAYS+OgDAiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDOiICcEQE5IwJyRgTkjAjIGRGQMyIgZ0RAzoiAnBEBOSMCckYE5IwIyBkRkDMiIGdEQM6IgJwRATkjAnJGBOSMCMgZEZAzIiBnREDuBQAA//+4jAPFe1H1tgAAAABJRU5ErkJggg==" +STORAGE_FUN="attachments avatars lfs packages repo_archive repo_avatars" +: ${FORGEJO_REPO:=fixture} + function fixture_get_paths_s3() { local path=$1 @@ -81,6 +84,18 @@ function fixture_lfs_create() { ) } +function fixture_lfs_assert() { + local d=$(mktemp -d) + ( + git clone http://${FORGEJO_USER}:${FORGEJO_PASSWORD}@${HOST_PORT}/${FORGEJO_USER}/${FORGEJO_REPO} $d/${FORGEJO_REPO} + cd $d/${FORGEJO_REPO} + rm file.txt + git-lfs checkout file.txt + test -f file.txt + ) + rm -fr $d +} + function fixture_lfs_assert_s3() { local content=$(mc cat testS3/forgejo/lfs/d6/1e/5fa787e50330288923bd0c9866b44643925965144262288447cf52f9f9b7) test "$content" = CONTENT @@ -200,3 +215,9 @@ function fixture_create() { fixture_${fun}_create done } + +function fixture_assert() { + for fun in lfs ; do + fixture_${fun}_assert + done +} diff --git a/lib/lib.sh b/lib/lib.sh index 5b07c86..fa6375f 100644 --- a/lib/lib.sh +++ b/lib/lib.sh @@ -249,14 +249,20 @@ function reset_garage() { rm -fr $DIR/garage } +function forgejo_cli() { + local version="$1" + shift + local work_path=$DIR/forgejo-work-path + + $DIR_BINARIES/forgejo-$version --config $work_path/app.ini --work-path $work_path "$@" +} + function create_user_and_login() { local version=$1 - local work_path=$DIR/forgejo-work-path local email="$FORGEJO_USER@example.com" - local cli="$DIR_BINARIES/forgejo-$version --config $work_path/app.ini --work-path $work_path" - if ! $cli admin user list | grep --quiet "$email" ; then - $cli admin user create --admin --username "$FORGEJO_USER" --password "$FORGEJO_PASSWORD" --email $email + if ! forgejo_cli $version admin user list | grep --quiet "$email" ; then + forgejo_cli $version admin user create --admin --username "$FORGEJO_USER" --password "$FORGEJO_PASSWORD" --email $email fi forgejo-curl.sh logout diff --git a/storage/storage.sh b/storage/storage.sh index dda1307..b08e6bc 100755 --- a/storage/storage.sh +++ b/storage/storage.sh @@ -3,8 +3,6 @@ STORAGE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" STORAGE_PATHS="attachments avatars lfs packages repo-archive repo-avatars" -STORAGE_FUN="attachments avatars lfs packages repo_archive repo_avatars" -: ${FORGEJO_REPO:=fixture} function storage_reset() { local config=$1 diff --git a/upgrade/upgrade.sh b/upgrade/upgrade.sh index fa40d76..5ad4415 100755 --- a/upgrade/upgrade.sh +++ b/upgrade/upgrade.sh @@ -25,16 +25,24 @@ function cleanup_storage() { } function test_successful_upgrades() { + stop for config in default ; do log_info "using $config app.ini" upgrade_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 + version=1.18 + log_info "run $version" + cleanup_storage + start $version + fixture_create + fixture_assert + + for version in 1.19 1.20 1.21 $RELEASE_NUMBERS_AND_DEV ; do + stop log_info "run $version" - cleanup_storage start $version verify_storage - stop + fixture_assert done done }