Instead of having an explicit vX.Y-dev version to be referenced explicitly, a binary built from source replaces the matching version. For instance, if forgejo/build-from-sources contains v9.0, * the development branch is compiled from source * the v9.0 artifact is uploaded * prior to running any test, the artificat is downloaded and used * the v9.0 binary is not downloaded from forgejo/experimental/integration because it is already present The vX.Y release is built daily and the end-to-end tests run on it. If a regression is introduced, it will be spotted within 24h. Compiling from source is used when the Forgejo runs the end-to-end suite on a specific pull request.
88 lines
2 KiB
Bash
Executable file
88 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; 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
|
|
echo gitea 1.21 forgejo 9.0
|
|
echo gitea 1.22 forgejo 9.0
|
|
) | 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 test_successful_upgrades
|
|
run test_forgejo_pprof
|
|
run test_gitea_upgrades
|
|
}
|