feat(federation): add scenario-gotosocial setup and teardown (#1275)
3/5 taken out of #1269 This patch adds the setup and teardown of GoToSocial for use in the end-to-end tests Reviewed-on: https://code.forgejo.org/forgejo/end-to-end/pulls/1275 Reviewed-by: earl-warren <earl-warren@noreply.code.forgejo.org> Reviewed-by: Beowulf <beowulf@beocode.eu> Co-authored-by: famfo <famfo@famfo.xyz> Co-committed-by: famfo <famfo@famfo.xyz>
This commit is contained in:
parent
a57c631fae
commit
45417622c0
6 changed files with 98 additions and 0 deletions
|
|
@ -79,6 +79,7 @@ function test_federation() {
|
||||||
scenarios=(
|
scenarios=(
|
||||||
"star 7.1"
|
"star 7.1"
|
||||||
"mastodon 14.0"
|
"mastodon 14.0"
|
||||||
|
"gotosocial 14.0"
|
||||||
)
|
)
|
||||||
|
|
||||||
for scenario_version_str in "${scenarios[@]}"; do
|
for scenario_version_str in "${scenarios[@]}"; do
|
||||||
|
|
|
||||||
0
federation/scenario-gotosocial/.gitignore
vendored
Normal file
0
federation/scenario-gotosocial/.gitignore
vendored
Normal file
16
federation/scenario-gotosocial/run.sh
Normal file
16
federation/scenario-gotosocial/run.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source "$DIR/federation_scenario-$scenario-env"
|
||||||
|
|
||||||
|
if [[ -z "$password" ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$port" ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
status_code="$(curl -o /dev/null -w '%{http_code}' "http://localhost:$port/")"
|
||||||
|
if [[ "$status_code" != "200" ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
58
federation/scenario-gotosocial/setup.sh
Normal file
58
federation/scenario-gotosocial/setup.sh
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source $SCENARIO_DIR/../../lib/lib.sh
|
||||||
|
|
||||||
|
GTS_VERSION="0.20.2" # renovate: datasource=docker depName=data.forgejo.org/oci/gotosocial
|
||||||
|
|
||||||
|
echo "setting up gotosocial"
|
||||||
|
|
||||||
|
tmpdir="$(mktemp --tmpdir -d gts.XXXXXXXXXX)"
|
||||||
|
cat << EOF > "$tmpdir/config.yaml"
|
||||||
|
host: "localhost:8080"
|
||||||
|
protocol: http
|
||||||
|
db-type: sqlite
|
||||||
|
db-address: /mount/gts.db3
|
||||||
|
|
||||||
|
http-client:
|
||||||
|
allow-ips: ["0.0.0.0/0", "::/0"]
|
||||||
|
insecure-outgoing: true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
podman unshare \
|
||||||
|
chown 1000:1000 -R $tmpdir
|
||||||
|
|
||||||
|
container_id="$(
|
||||||
|
podman run \
|
||||||
|
-d \
|
||||||
|
--env "GTS_CONFIG_PATH=/mount/config.yaml" \
|
||||||
|
-v "$tmpdir:/mount" \
|
||||||
|
-p "8080:8080" \
|
||||||
|
--network=host \
|
||||||
|
"data.forgejo.org/oci/gotosocial:$GTS_VERSION" \
|
||||||
|
server start
|
||||||
|
)"
|
||||||
|
|
||||||
|
function wait_gts_ready() {
|
||||||
|
http_status=$(curl -s -w \
|
||||||
|
"%{http_code}" -o /dev/null \
|
||||||
|
"http://localhost:8080/"
|
||||||
|
)
|
||||||
|
|
||||||
|
[[ "$http_status" == 200 ]] && echo "ready"
|
||||||
|
}
|
||||||
|
|
||||||
|
retry wait_gts_ready
|
||||||
|
|
||||||
|
password="verysecurepassword"
|
||||||
|
podman exec -it "$container_id" /gotosocial/gotosocial admin \
|
||||||
|
account create \
|
||||||
|
--username "test" \
|
||||||
|
--email "test@localhost" \
|
||||||
|
--password "$password"
|
||||||
|
|
||||||
|
cat << EOF > "$DIR/federation_scenario-gotosocial-env"
|
||||||
|
password="$password"
|
||||||
|
port="8080"
|
||||||
|
container_id="$container_id"
|
||||||
|
EOF
|
||||||
|
|
||||||
12
federation/scenario-gotosocial/teardown.sh
Normal file
12
federation/scenario-gotosocial/teardown.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source "$DIR/federation_scenario-gotosocial-env"
|
||||||
|
|
||||||
|
if [[ -z "$container_id" ]]; then
|
||||||
|
echo "gotosocial container ID not found, container may not be stopped"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
podman stop "$container_id"
|
||||||
|
rm "$DIR/federation_scenario-gotosocial-env"
|
||||||
|
|
||||||
11
run.sh
Executable file
11
run.sh
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
podman build -t forgejo-e2e .
|
||||||
|
patchelf ../forgejo/forgejo --set-interpreter /lib64/ld-linux-x86-64.so.2
|
||||||
|
podman run \
|
||||||
|
-it --privileged \
|
||||||
|
-v ../forgejo/gitea:/srv/forgejo-binaries/forgejo-14.0 \
|
||||||
|
-p 3001-3003:3001-3003 \
|
||||||
|
-p 4000:4000 \
|
||||||
|
-p 8080:8080 \
|
||||||
|
forgejo-e2e
|
||||||
Loading…
Add table
Add a link
Reference in a new issue