From e492cce2067151bfc3937a26b2983ac5e9faaa0c Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Tue, 15 Dec 2020 14:58:11 +0100 Subject: [PATCH] Allow running docker-less federation tests locally --- .drone.yml | 3 +- api_tests/prepare-drone-federation-test.sh | 34 ++++++++++++++++------ api_tests/run-federation-test.sh | 20 +++++++++++++ 3 files changed, 47 insertions(+), 10 deletions(-) create mode 100755 api_tests/run-federation-test.sh diff --git a/.drone.yml b/.drone.yml index 1809e0fe7..ec0d69fee 100644 --- a/.drone.yml +++ b/.drone.yml @@ -65,7 +65,8 @@ steps: - name: run federation tests image: node:15-alpine3.12 environment: - LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy + LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432 + DO_WRITE_HOSTS_FILE: 1 commands: - ls -la target/lemmy_server - apk add bash curl postgresql-client diff --git a/api_tests/prepare-drone-federation-test.sh b/api_tests/prepare-drone-federation-test.sh index f59f2c5f5..a1ca4b8da 100755 --- a/api_tests/prepare-drone-federation-test.sh +++ b/api_tests/prepare-drone-federation-test.sh @@ -12,17 +12,33 @@ export LEMMY_TEST_SEND_SYNC=1 export RUST_BACKTRACE=1 for INSTANCE in lemmy_alpha lemmy_beta lemmy_gamma lemmy_delta lemmy_epsilon; do - psql "$LEMMY_DATABASE_URL" -c "CREATE DATABASE $INSTANCE" + psql "${LEMMY_DATABASE_URL}/lemmy" -c "DROP DATABASE IF EXISTS $INSTANCE" + psql "${LEMMY_DATABASE_URL}/lemmy" -c "CREATE DATABASE $INSTANCE" done -for INSTANCE in lemmy-alpha lemmy-beta lemmy-gamma lemmy-delta lemmy-epsilon; do - echo "127.0.0.1 $INSTANCE" >> /etc/hosts -done +if [ -z "$DO_WRITE_HOSTS_FILE" ]; then + if ! grep -q lemmy-alpha /etc/hosts; then + echo "Please add the following to your /etc/hosts file, then press enter: + + 127.0.0.1 lemmy-alpha + 127.0.0.1 lemmy-beta + 127.0.0.1 lemmy-gamma + 127.0.0.1 lemmy-delta + 127.0.0.1 lemmy-epsilon" + read -p "" + fi +else + for INSTANCE in lemmy-alpha lemmy-beta lemmy-gamma lemmy-delta lemmy-epsilon; do + echo "127.0.0.1 $INSTANCE" >> /etc/hosts + done +fi + +killall lemmy_server || true echo "start alpha" LEMMY_HOSTNAME=lemmy-alpha:8541 \ LEMMY_PORT=8541 \ - LEMMY_DATABASE_URL=postgres://lemmy:password@database:5432/lemmy_alpha \ + LEMMY_DATABASE_URL="${LEMMY_DATABASE_URL}/lemmy_alpha" \ LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta,lemmy-gamma,lemmy-delta,lemmy-epsilon \ LEMMY_SETUP__ADMIN_USERNAME=lemmy_alpha \ LEMMY_SETUP__SITE_NAME=lemmy-alpha \ @@ -31,7 +47,7 @@ LEMMY_HOSTNAME=lemmy-alpha:8541 \ echo "start beta" LEMMY_HOSTNAME=lemmy-beta:8551 \ LEMMY_PORT=8551 \ - LEMMY_DATABASE_URL=postgres://lemmy:password@database:5432/lemmy_beta \ + LEMMY_DATABASE_URL="${LEMMY_DATABASE_URL}/lemmy_beta" \ LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-gamma,lemmy-delta,lemmy-epsilon \ LEMMY_SETUP__ADMIN_USERNAME=lemmy_beta \ LEMMY_SETUP__SITE_NAME=lemmy-beta \ @@ -40,7 +56,7 @@ LEMMY_HOSTNAME=lemmy-beta:8551 \ echo "start gamma" LEMMY_HOSTNAME=lemmy-gamma:8561 \ LEMMY_PORT=8561 \ - LEMMY_DATABASE_URL=postgres://lemmy:password@database:5432/lemmy_gamma \ + LEMMY_DATABASE_URL="${LEMMY_DATABASE_URL}/lemmy_gamma" \ LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-beta,lemmy-delta,lemmy-epsilon \ LEMMY_SETUP__ADMIN_USERNAME=lemmy_gamma \ LEMMY_SETUP__SITE_NAME=lemmy-gamma \ @@ -50,7 +66,7 @@ echo "start delta" # An instance with only an allowlist for beta LEMMY_HOSTNAME=lemmy-delta:8571 \ LEMMY_PORT=8571 \ - LEMMY_DATABASE_URL=postgres://lemmy:password@database:5432/lemmy_delta \ + LEMMY_DATABASE_URL="${LEMMY_DATABASE_URL}/lemmy_delta" \ LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta \ LEMMY_SETUP__ADMIN_USERNAME=lemmy_delta \ LEMMY_SETUP__SITE_NAME=lemmy-delta \ @@ -60,7 +76,7 @@ echo "start epsilon" # An instance who has a blocklist, with lemmy-alpha blocked LEMMY_HOSTNAME=lemmy-epsilon:8581 \ LEMMY_PORT=8581 \ - LEMMY_DATABASE_URL=postgres://lemmy:password@database:5432/lemmy_epsilon \ + LEMMY_DATABASE_URL="${LEMMY_DATABASE_URL}/lemmy_epsilon" \ LEMMY_FEDERATION__BLOCKED_INSTANCES=lemmy-alpha \ LEMMY_SETUP__ADMIN_USERNAME=lemmy_epsilon \ LEMMY_SETUP__SITE_NAME=lemmy-epsilon \ diff --git a/api_tests/run-federation-test.sh b/api_tests/run-federation-test.sh new file mode 100755 index 000000000..2c707e7e9 --- /dev/null +++ b/api_tests/run-federation-test.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -e + +export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432 + +pushd .. +cargo +1.47.0 build +rm target/lemmy_server || true +cp target/debug/lemmy_server target/lemmy_server +./api_tests/prepare-drone-federation-test.sh +popd + +yarn +yarn api-test || true + +killall lemmy_server + +for INSTANCE in lemmy_alpha lemmy_beta lemmy_gamma lemmy_delta lemmy_epsilon; do + psql "$LEMMY_DATABASE_URL" -c "DROP DATABASE $INSTANCE" +done \ No newline at end of file