federation: stub that checks the nodeinfo of the two instances
This commit is contained in:
parent
19ce0fe6b1
commit
9b6442bfcf
8 changed files with 165 additions and 0 deletions
|
@ -76,6 +76,17 @@ jobs:
|
||||||
if: always()
|
if: always()
|
||||||
run: su forgejo -c "./end-to-end.sh show_logs"
|
run: su forgejo -c "./end-to-end.sh show_logs"
|
||||||
|
|
||||||
|
federation:
|
||||||
|
needs: [build]
|
||||||
|
runs-on: lxc-bookworm
|
||||||
|
steps:
|
||||||
|
- uses: https://code.forgejo.org/actions/checkout@v4
|
||||||
|
- uses: ./.forgejo/prepare-end-to-end
|
||||||
|
- run: su forgejo -c "./end-to-end.sh test_federation"
|
||||||
|
- name: full logs
|
||||||
|
if: always()
|
||||||
|
run: su forgejo -c "./end-to-end.sh show_logs"
|
||||||
|
|
||||||
actions-docs:
|
actions-docs:
|
||||||
needs: [build]
|
needs: [build]
|
||||||
runs-on: lxc-bookworm
|
runs-on: lxc-bookworm
|
||||||
|
|
|
@ -15,6 +15,7 @@ SELF_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
SELF="${BASH_SOURCE[0]}"
|
SELF="${BASH_SOURCE[0]}"
|
||||||
source $SELF_DIR/lib/lib.sh
|
source $SELF_DIR/lib/lib.sh
|
||||||
|
|
||||||
|
source $SELF_DIR/federation/federation.sh
|
||||||
source $SELF_DIR/actions/actions.sh
|
source $SELF_DIR/actions/actions.sh
|
||||||
source $SELF_DIR/forgejo/fixtures.sh
|
source $SELF_DIR/forgejo/fixtures.sh
|
||||||
source $SELF_DIR/storage/storage.sh
|
source $SELF_DIR/storage/storage.sh
|
||||||
|
|
33
federation/ONE-app.ini
Normal file
33
federation/ONE-app.ini
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
RUN_MODE = prod
|
||||||
|
WORK_PATH = forgejo-ONE
|
||||||
|
|
||||||
|
[server]
|
||||||
|
APP_DATA_PATH = ${WORK_PATH}/data
|
||||||
|
DOMAIN = ${IP}
|
||||||
|
HTTP_PORT = 3001
|
||||||
|
SSH_LISTEN_PORT = 2201
|
||||||
|
|
||||||
|
[queue]
|
||||||
|
TYPE = immediate
|
||||||
|
|
||||||
|
[database]
|
||||||
|
DB_TYPE = sqlite3
|
||||||
|
PATH = ${WORK_PATH}/forgejo.db
|
||||||
|
|
||||||
|
[log]
|
||||||
|
MODE = file
|
||||||
|
LEVEL = trace
|
||||||
|
ROUTER = file
|
||||||
|
|
||||||
|
[log.file]
|
||||||
|
FILE_NAME = forgejo.log
|
||||||
|
|
||||||
|
[security]
|
||||||
|
INSTALL_LOCK = true
|
||||||
|
|
||||||
|
[repository]
|
||||||
|
ENABLE_PUSH_CREATE_USER = true
|
||||||
|
DEFAULT_PUSH_CREATE_PRIVATE = false
|
||||||
|
|
||||||
|
[federation]
|
||||||
|
ENABLED = true
|
33
federation/TWO-app.ini
Normal file
33
federation/TWO-app.ini
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
RUN_MODE = prod
|
||||||
|
WORK_PATH = forgejo-TWO
|
||||||
|
|
||||||
|
[server]
|
||||||
|
APP_DATA_PATH = ${WORK_PATH}/data
|
||||||
|
DOMAIN = ${IP}
|
||||||
|
HTTP_PORT = 3002
|
||||||
|
SSH_LISTEN_PORT = 2202
|
||||||
|
|
||||||
|
[queue]
|
||||||
|
TYPE = immediate
|
||||||
|
|
||||||
|
[database]
|
||||||
|
DB_TYPE = sqlite3
|
||||||
|
PATH = ${WORK_PATH}/forgejo.db
|
||||||
|
|
||||||
|
[log]
|
||||||
|
MODE = file
|
||||||
|
LEVEL = trace
|
||||||
|
ROUTER = file
|
||||||
|
|
||||||
|
[log.file]
|
||||||
|
FILE_NAME = forgejo.log
|
||||||
|
|
||||||
|
[security]
|
||||||
|
INSTALL_LOCK = true
|
||||||
|
|
||||||
|
[repository]
|
||||||
|
ENABLE_PUSH_CREATE_USER = true
|
||||||
|
DEFAULT_PUSH_CREATE_PRIVATE = false
|
||||||
|
|
||||||
|
[federation]
|
||||||
|
ENABLED = true
|
85
federation/federation.sh
Executable file
85
federation/federation.sh
Executable file
|
@ -0,0 +1,85 @@
|
||||||
|
# Copyright 2024 The Forgejo Authors
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
FEDERATION_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
export FEDERATION_INSTANCES="ONE TWO"
|
||||||
|
export FEDERATION_CONFIGS
|
||||||
|
|
||||||
|
function federation_setup_variables() {
|
||||||
|
if test "$FEDERATION_CONFIGS" ; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
for instance in $FEDERATION_INSTANCES ; do
|
||||||
|
local config=$FEDERATION_DIR/$instance-app.ini
|
||||||
|
FEDERATION_CONFIGS="$FEDERATION_CONFIGS $config"
|
||||||
|
local base=$(work_path_base $config)
|
||||||
|
local work_path=$DIR/$base
|
||||||
|
local host_port=$(get_host_port $config)
|
||||||
|
|
||||||
|
eval export ${instance}_CONFIG=$config
|
||||||
|
eval export ${instance}_CURL=$work_path/forgejo-curl.sh
|
||||||
|
eval export ${instance}_HOST_PORT=$host_port
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function federation_verify_scenario() {
|
||||||
|
local scenario=$1
|
||||||
|
|
||||||
|
export scenario
|
||||||
|
export SCENARIO_DIR=$FEDERATION_DIR/scenario-$scenario
|
||||||
|
|
||||||
|
if test -f $SCENARIO_DIR/setup.sh ; then
|
||||||
|
echo "============================ SETUP scenario-$scenario ==================="
|
||||||
|
bash -ex $SCENARIO_DIR/setup.sh || return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "============================ RUN scenario-$scenario ==================="
|
||||||
|
bash -ex $SCENARIO_DIR/run.sh || return 1
|
||||||
|
|
||||||
|
if test -f $SCENARIO_DIR/teardown.sh ; then
|
||||||
|
echo "============================ TEARDOWN scenario-$scenario ==================="
|
||||||
|
bash -ex $SCENARIO_DIR/teardown.sh || return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function federation_setup() {
|
||||||
|
federation_setup_variables
|
||||||
|
|
||||||
|
local version=$1
|
||||||
|
federation_teardown
|
||||||
|
|
||||||
|
local config
|
||||||
|
for config in $FEDERATION_CONFIGS ; do
|
||||||
|
reset_forgejo $config
|
||||||
|
start_forgejo $version $config
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function federation_teardown() {
|
||||||
|
federation_setup_variables
|
||||||
|
|
||||||
|
local config
|
||||||
|
for config in $FEDERATION_CONFIGS ; do
|
||||||
|
stop_forgejo $config
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_federation() {
|
||||||
|
federation_setup_variables
|
||||||
|
|
||||||
|
local versions="${1:-$RELEASE_NUMBERS_AND_DEV}"
|
||||||
|
|
||||||
|
for version in $versions ; do
|
||||||
|
|
||||||
|
if dpkg --compare-versions $version lt 7.1 ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
federation_setup $version
|
||||||
|
|
||||||
|
for scenario in star ; do
|
||||||
|
run federation_verify_scenario $scenario
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
2
federation/scenario-star/run.sh
Normal file
2
federation/scenario-star/run.sh
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
test forgejo = $($ONE_CURL api_json $ONE_HOST_PORT/api/v1/nodeinfo | jq -r .software.name)
|
||||||
|
test forgejo = $($TWO_CURL api_json $TWO_HOST_PORT/api/v1/nodeinfo | jq -r .software.name)
|
0
federation/scenario-star/setup.sh
Normal file
0
federation/scenario-star/setup.sh
Normal file
0
federation/scenario-star/teardown.sh
Normal file
0
federation/scenario-star/teardown.sh
Normal file
Loading…
Add table
Reference in a new issue