From 50c5908a91954b7b106aba27c8764149937565e5 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 7 Aug 2024 09:12:09 +0200 Subject: [PATCH 1/8] Forgejo v1.21 is EOL, v9.0 is dev --- actions/actions.sh | 2 +- forgejo/fixtures/storage.sh | 2 -- lib/lib.sh | 2 +- storage/storage.sh | 4 +--- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/actions/actions.sh b/actions/actions.sh index f467ba8..089efbf 100755 --- a/actions/actions.sh +++ b/actions/actions.sh @@ -88,7 +88,7 @@ function actions_runner_version() { } function test_actions() { - local versions="${1:-1.21 $RELEASE_NUMBERS_AND_DEV}" + local versions="${1:-$RELEASE_NUMBERS_AND_DEV}" for version in $versions; do diff --git a/forgejo/fixtures/storage.sh b/forgejo/fixtures/storage.sh index cf893b8..80b7c70 100644 --- a/forgejo/fixtures/storage.sh +++ b/forgejo/fixtures/storage.sh @@ -150,8 +150,6 @@ function fixture_avatars_assert_local() { function fixture_repo_avatars_create() { echo -n $ONEPIXEL | base64 --decode >$DIR/repo-avatar.png forgejo-curl.sh web --form avatar=@$DIR/repo-avatar.png http://${HOST_PORT}/${FORGEJO_USER}/${FORGEJO_REPO}/settings/avatar - # v1.21 only - #forgejo-curl.sh api_json -X POST --data-raw '{"body":"'$avatar'"}' http://${HOST_PORT}/api/v1/repos/${FORGEJO_USER}/${FORGEJO_REPO}/avatar } function fixture_repo_avatars_assert_s3() { diff --git a/lib/lib.sh b/lib/lib.sh index 295c0eb..b5101ca 100644 --- a/lib/lib.sh +++ b/lib/lib.sh @@ -26,7 +26,7 @@ IP=$(hostname -I | cut -f1 -d' ') # # Forgejo releases for which a branch exists (7.0/forgejo etc.) # -RELEASE_NUMBERS="7.0 8.0" +RELEASE_NUMBERS="7.0 8.0 9.0" PREFIX=============== export DIR=/tmp/forgejo-end-to-end diff --git a/storage/storage.sh b/storage/storage.sh index e96a0d3..6ace098 100755 --- a/storage/storage.sh +++ b/storage/storage.sh @@ -31,9 +31,7 @@ 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.21 $RELEASE_NUMBERS_AND_DEV; do + for version in $RELEASE_NUMBERS_AND_DEV; do log_info "Forgejo $version & $s3_backend" stop storage_reset stable-s3 From f46d01885f550caa40748c84a36a6e7cdcd9d869 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 7 Aug 2024 09:17:29 +0200 Subject: [PATCH 2/8] packages: alpine: verify supported versions v8.0-dev should be supported too but it is not LTS: only care for 9.0-dev which is not different for Alpine. --- packages/alpine-1.21/package-source/APKBUILD | 26 --------- .../alpine-1.21/package-source/forgejo_2174 | 3 - .../package-source/forgejo_2174.init | 7 --- packages/alpine-1.21/test.sh | 58 ------------------- packages/alpine-7.0-test/test.sh | 2 +- packages/alpine-9.0-dev | 1 + packages/alpine.sh | 4 +- 7 files changed, 4 insertions(+), 97 deletions(-) delete mode 100644 packages/alpine-1.21/package-source/APKBUILD delete mode 100755 packages/alpine-1.21/package-source/forgejo_2174 delete mode 100755 packages/alpine-1.21/package-source/forgejo_2174.init delete mode 100755 packages/alpine-1.21/test.sh create mode 120000 packages/alpine-9.0-dev diff --git a/packages/alpine-1.21/package-source/APKBUILD b/packages/alpine-1.21/package-source/APKBUILD deleted file mode 100644 index ce75e29..0000000 --- a/packages/alpine-1.21/package-source/APKBUILD +++ /dev/null @@ -1,26 +0,0 @@ -# -*- mode: Shell-script; eval: (setq indent-tabs-mode 't); eval: (setq tab-width 4) -*- -# Maintainer: Dominic Meiser -pkgname=forgejo-2174 -pkgver=1.0 -pkgrel=0 -pkgdesc="Forgejo #2174 Reproduction" -url="https://msrd0.dev/msrd0/$pkgname" -arch="x86_64" -license="custom" - -# using x86_64 instead of noarch as a workaround of -# https://codeberg.org/forgejo/forgejo/issues/2173 -subpackages="$pkgname-openrc::x86_64" - -source="forgejo_2174 forgejo_2174.init" -builddir="$srcdir" - -package() { - install -D -m755 "$srcdir/forgejo_2174" "$pkgdir"/usr/bin/forgejo_2174 - install -D -m755 "$srcdir/forgejo_2174.init" "$pkgdir"/etc/init.d/forgejo_2174 -} - -sha512sums=" -651c2a816510a18981bcd45077eb5acd6e58511d641949ddc690e326b81018d851eb7f1c88e2336eada2f216606ce2aa0569eb2d02d7c423c80705cc00acf838 forgejo_2174 -b1cba77139cdaf9e0cdd78de93becbb3891ec59646e8d2cb40620b230bd798d51e6d9c58e65b584812a6bb8eb2b9c9f89262a8700a39c62af8ec8ea09aee4e29 forgejo_2174.init -" diff --git a/packages/alpine-1.21/package-source/forgejo_2174 b/packages/alpine-1.21/package-source/forgejo_2174 deleted file mode 100755 index b12f87b..0000000 --- a/packages/alpine-1.21/package-source/forgejo_2174 +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -echo "Hello World" diff --git a/packages/alpine-1.21/package-source/forgejo_2174.init b/packages/alpine-1.21/package-source/forgejo_2174.init deleted file mode 100755 index 06b7f20..0000000 --- a/packages/alpine-1.21/package-source/forgejo_2174.init +++ /dev/null @@ -1,7 +0,0 @@ -#!/sbin/openrc-run - -command="/usr/bin/forgejo_2174" - -depend() { - need net -} diff --git a/packages/alpine-1.21/test.sh b/packages/alpine-1.21/test.sh deleted file mode 100755 index 93a3aba..0000000 --- a/packages/alpine-1.21/test.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/busybox ash -set -exuo pipefail - -forgejo_url=$1 -forgejo_token=$2 - -# initialize abuild -apk update -apk add --no-cache alpine-sdk sudo util-linux -adduser -D user -h /home/user -addgroup user abuild -echo "root ALL=(ALL) ALL" >/etc/sudoers -echo "%abuild ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers -mkdir -p /var/cache/distfiles -chgrp abuild /var/cache/distfiles -chmod 775 /var/cache/distfiles -mkdir -p "/home/user/.abuild" -echo "/home/user/.abuild/user.rsa" | abuild-keygen -i -b 4096 -echo 'PACKAGER_PRIVKEY=/home/user/.abuild/user.rsa' >/home/user/.abuild/abuild.conf -chown -R "user:user" /home/user/ - -# make sure we own the relevant directory -cp -r package-source /srv/alpine -cd /srv -mkdir packages -echo "REPODEST=/srv/packages" >>/home/user/.abuild/abuild.conf -cat /home/user/.abuild/abuild.conf -chown -R user:user alpine packages - -# build the package -sudo -u user APKBUILD=alpine/APKBUILD abuild -r - -# upload new package -cd packages/srv/x86_64/ -for file in $(find . -name '*.apk' -type f | sed -e 's,./,,'); do - # remove old package - curl \ - --fail \ - -H "Authorization: token $forgejo_token" \ - -X DELETE \ - "$forgejo_url/api/packages/root/alpine/3.19/forgejo-2174/$file" || - true - - # upload new package - curl \ - --fail \ - -H "Authorization: token $forgejo_token" \ - -T "$file" \ - "$forgejo_url/api/packages/root/alpine/3.19/forgejo-2174" -done - -# ensure that the install-if condition works as expected -apk add openrc -(cd /etc/apk/keys && curl -JO $forgejo_url/api/packages/root/alpine/key) -echo "$forgejo_url/api/packages/root/alpine/3.19/forgejo-2174" >>/etc/apk/repositories -apk add forgejo-2174 -[ -e /usr/bin/forgejo_2174 ] # from the installed package -[ -e /etc/init.d/forgejo_2174 ] # from the -openrc package installed because of the install-if condition diff --git a/packages/alpine-7.0-test/test.sh b/packages/alpine-7.0-test/test.sh index 82565d0..d830df2 100755 --- a/packages/alpine-7.0-test/test.sh +++ b/packages/alpine-7.0-test/test.sh @@ -6,7 +6,7 @@ forgejo_token=$2 # initialize abuild apk update -apk add --no-cache alpine-sdk sudo util-linux +apk add --no-cache alpine-sdk sudo util-linux curl adduser -D user -h /home/user addgroup user abuild echo "root ALL=(ALL) ALL" >/etc/sudoers diff --git a/packages/alpine-9.0-dev b/packages/alpine-9.0-dev new file mode 120000 index 0000000..a2389c0 --- /dev/null +++ b/packages/alpine-9.0-dev @@ -0,0 +1 @@ +alpine-7.0-test \ No newline at end of file diff --git a/packages/alpine.sh b/packages/alpine.sh index 79595ae..3a4ea78 100644 --- a/packages/alpine.sh +++ b/packages/alpine.sh @@ -16,8 +16,8 @@ function test_packages_alpine_version() { } function test_packages_alpine() { - for alpine_version in 3.18 3.19; do - for forgejo_version in 1.21 7.0-test 7.0-dev; do + for alpine_version in 3.19 3.20; do + for forgejo_version in 7.0-dev 9.0-dev; do test_packages_alpine_version $alpine_version $forgejo_version done done From 497a5d76bbe2fd6d2f9d48cafbbefd70b17e7901 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 7 Aug 2024 09:18:25 +0200 Subject: [PATCH 3/8] actions: trim v1.20 & v1.21 specific comment --- actions/example-if-cancel/.forgejo/workflows/test.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/actions/example-if-cancel/.forgejo/workflows/test.yml b/actions/example-if-cancel/.forgejo/workflows/test.yml index 5a92198..d680017 100644 --- a/actions/example-if-cancel/.forgejo/workflows/test.yml +++ b/actions/example-if-cancel/.forgejo/workflows/test.yml @@ -1,9 +1,3 @@ -# -# As of Forgejo v1.20 running this example would require using the web -# endpoints because there is no API to do the same. -# -# It was manually tested to **not work** with Forgejo v1.21 & runner 3.0.1 -# on: [push] jobs: From d872865242ddc8a078bec8365ef5ee6b6064d0c7 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 7 Aug 2024 09:36:16 +0200 Subject: [PATCH 4/8] test Forgejo upgrades starting with v7.0 instead of v1.21 --- upgrade/upgrade.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upgrade/upgrade.sh b/upgrade/upgrade.sh index 640cf04..9d29aa8 100755 --- a/upgrade/upgrade.sh +++ b/upgrade/upgrade.sh @@ -30,7 +30,7 @@ function test_successful_upgrades() { log_info "using $config" upgrade_reset $config - version=1.21 + version=7.0 log_info "run $version" cleanup_storage start $version From 944dd9872703a75cc2870aeb4f4f10c283970e69 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 7 Aug 2024 09:36:50 +0200 Subject: [PATCH 5/8] 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. --- upgrade/upgrade.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/upgrade/upgrade.sh b/upgrade/upgrade.sh index 9d29aa8..60e6fac 100755 --- a/upgrade/upgrade.sh +++ b/upgrade/upgrade.sh @@ -52,9 +52,9 @@ function test_successful_upgrades() { function test_gitea_upgrades() { local config=$UPGRADE_DIR/default-app.ini ( - echo gitea 1.21 forgejo 7.0-test - echo gitea 1.21 forgejo 8.0-test - echo gitea 1.22 forgejo 8.0-test + 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 From af9305b221fd0b53ab4787a3544bf7c3c9396ef9 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 7 Aug 2024 09:38:32 +0200 Subject: [PATCH 6/8] README: link to v7.0 documentation instead of v1.21 --- README.md | 4 ++-- end-to-end.sh | 10 ---------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 257e5b6..fa8c10e 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,13 @@ as: { "insecure-registries": [ "10.0.0.0/8" ] } -``` +``` Use setup-forgejo from source. The [setup-forgejo](https://code.forgejo.org/actions/setup-forgejo) repository is a [Forgejo -Action](https://forgejo.org/docs/v1.21/user/actions/) which is meant +Action](https://forgejo.org/docs/v7.0/user/actions/) which is meant to be used in workflows. However, it is implemented as shell scripts that can also be used to create Forgejo instances and runners locally. This is convenient for testing and the reason why it needs to be added to the PATH. diff --git a/end-to-end.sh b/end-to-end.sh index 05865ac..3b3a702 100755 --- a/end-to-end.sh +++ b/end-to-end.sh @@ -1,16 +1,6 @@ #!/bin/bash # SPDX-License-Identifier: MIT -# -# Debug loop from the source tree: -# -# ./end-to-end.sh dependencies -# ./end-to-end.sh build_all -# VERBOSE=true ./end-to-end.sh test_downgrade_1.20.2_fails -# -# Everything happens in /tmp/forgejo-end-to-end -# - SELF_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SELF="${BASH_SOURCE[0]}" source $SELF_DIR/lib/lib.sh From 0f4173555f965f46fd0481cbfe5155adaf45abdb Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 7 Aug 2024 09:56:02 +0200 Subject: [PATCH 7/8] forgejo: fix sources Gitea compatibility It is cosmetic, keep it accurate. --- forgejo/sources/7.0 | 2 +- forgejo/sources/8.0 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/forgejo/sources/7.0 b/forgejo/sources/7.0 index b033f01..0e2cc26 100644 --- a/forgejo/sources/7.0 +++ b/forgejo/sources/7.0 @@ -1 +1 @@ -https://codeberg.org/forgejo/forgejo v7.0/forgejo 7.0.0+gitea-1.22.0 +https://codeberg.org/forgejo/forgejo v7.0/forgejo 7.0.0+gitea-1.21.0 diff --git a/forgejo/sources/8.0 b/forgejo/sources/8.0 index 3c5a3ec..42ce80b 100644 --- a/forgejo/sources/8.0 +++ b/forgejo/sources/8.0 @@ -1 +1 @@ -https://codeberg.org/forgejo/forgejo forgejo 8.0.0+gitea-1.21.0 +https://codeberg.org/forgejo/forgejo v8.0/forgejo 8.0.0+gitea-1.22.0 From 6224249696769f138e1c5499a561d6cc821d6791 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 7 Aug 2024 11:49:17 +0200 Subject: [PATCH 8/8] upgrade: test pprof against the two active stable releases --- upgrade/test-pprof-upload.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/upgrade/test-pprof-upload.sh b/upgrade/test-pprof-upload.sh index 48dada4..48e0005 100644 --- a/upgrade/test-pprof-upload.sh +++ b/upgrade/test-pprof-upload.sh @@ -28,13 +28,13 @@ function test_forgejo_pprof() { docker run --name test_pyroscope --rm -d -p 4040:4040 docker.io/grafana/pyroscope reset_forgejo $UPGRADE_DIR/default-app.ini - log_info "run 7.0-test" - start 7.0-test + log_info "run 7.0-dev" + start 7.0-dev test_upload_profiles stop - log_info "run 8.0-test" - start 8.0-test + log_info "run 9.0-dev" + start 9.0-dev test_upload_profiles stop