Merge pull request 'Forgejo v1.21 is EOL & add v9.0' (#238) from earl-warren/end-to-end:wip-9.0 into main

Reviewed-on: https://code.forgejo.org///forgejo/end-to-end/pulls/238
This commit is contained in:
earl-warren 2024-08-08 14:37:12 +00:00
commit 996373c707
18 changed files with 19 additions and 132 deletions

View file

@ -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.

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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() {

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,26 +0,0 @@
# -*- mode: Shell-script; eval: (setq indent-tabs-mode 't); eval: (setq tab-width 4) -*-
# Maintainer: Dominic Meiser <git@msrd0.de>
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
"

View file

@ -1,3 +0,0 @@
#!/bin/sh
echo "Hello World"

View file

@ -1,7 +0,0 @@
#!/sbin/openrc-run
command="/usr/bin/forgejo_2174"
depend() {
need net
}

View file

@ -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

View file

@ -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

1
packages/alpine-9.0-dev Symbolic link
View file

@ -0,0 +1 @@
alpine-7.0-test

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
@ -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