From: Felix Ableitner Date: Thu, 10 Dec 2020 17:03:11 +0000 (+0100) Subject: implement federation test in bash X-Git-Url: http://these/git/%7B%60%24%7BwebArchiveUrl%7D/%22%7B%7D/%22https:/hacktivis.me/static/%24%7Bargs.thread.url%7D?a=commitdiff_plain;h=f76f742ba7fe9105c063a98aab84fd74046fb757;p=lemmy.git implement federation test in bash --- diff --git a/.drone.yml b/.drone.yml index 44569920..997bc104 100644 --- a/.drone.yml +++ b/.drone.yml @@ -79,30 +79,9 @@ steps: - name: run federation tests image: node:15-alpine3.12 user: root - environment: - LEMMY_JWT_SECRET: changeme - LEMMY_FEDERATION__ENABLED: true - LEMMY_TLS_ENABLED: false - LEMMY_SETUP__ADMIN_PASSWORD: lemmy - LEMMY_RATE_LIMIT__POST: 99999 - LEMMY_RATE_LIMIT__REGISTER: 99999 - LEMMY_CAPTCHA__ENABLED: false - RUST_BACKTRACE: 1 - RUST_LOG: debug - LEMMY_HOSTNAME: lemmy-alpha:8541 - LEMMY_DATABASE_URL: postgres://lemmy:password@postgres_alpha:5432/lemmy - LEMMY_FEDERATION__ALLOWED_INSTANCES: lemmy-beta,lemmy-gamma,lemmy-delta,lemmy-epsilon - LEMMY_SETUP__ADMIN_USERNAME: lemmy_alpha - LEMMY_SETUP__SITE_NAME: lemmy-alpha - volumes: - - name: dieselcli - path: /dieselcli commands: - - mkdir -p volumes/pictrs_{alpha,beta,gamma,delta,epsilon} - - chown -R 991:991 volumes/pictrs_{alpha,beta,gamma,delta,epsilon} - - LEMMY_PORT=8541 ./target/debug/lemmy_server & - - LEMMY_PORT=8551 ./target/debug/lemmy_server & - cd api_tests/ + - ./prepare-prepare-drone-federation-test.sh - yarn - yarn api-test @@ -110,8 +89,7 @@ steps: image: plugins/docker user: root commands: - # TODO: remove newline, add `latest` (eg `0.9.1,latest`) - - git describe > .tags + - "$(git describe),latest" > .tags when: ref: - refs/tags/* diff --git a/api_tests/prepare-drone-federation-test.sh b/api_tests/prepare-drone-federation-test.sh new file mode 100755 index 00000000..d8f66a12 --- /dev/null +++ b/api_tests/prepare-drone-federation-test.sh @@ -0,0 +1,66 @@ +#!/bin/bash +set -e + +export LEMMY_JWT_SECRET=changeme +export LEMMY_FEDERATION__ENABLED=true +export LEMMY_TLS_ENABLED=false +export LEMMY_SETUP__ADMIN_PASSWORD=lemmy +export LEMMY_RATE_LIMIT__POST=99999 +export LEMMY_RATE_LIMIT__REGISTER=99999 +export LEMMY_CAPTCHA__ENABLED=false +export RUST_BACKTRACE=1 +export RUST_LOG=debug + +echo "start alpha" +LEMMY_HOSTNAME=lemmy-alpha:8541 \ + LEMMY_PORT=8541 \ + LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_alpha:5432/lemmy \ + LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta,lemmy-gamma,lemmy-delta,lemmy-epsilon \ + LEMMY_SETUP__ADMIN_USERNAME=lemmy_alpha \ + LEMMY_SETUP__SITE_NAME=lemmy-alpha \ + ../target/debug/lemmy_server & + +echo "start beta" +LEMMY_HOSTNAME=lemmy-beta:8551 \ + LEMMY_PORT=8551 \ + LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_beta:5432/lemmy \ + LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-gamma,lemmy-delta,lemmy-epsilon \ + LEMMY_SETUP__ADMIN_USERNAME=lemmy_beta \ + LEMMY_SETUP__SITE_NAME=lemmy-beta \ + ../target/debug/lemmy_server & + +echo "start gamma" +LEMMY_HOSTNAME=lemmy-gamma:8561 \ + LEMMY_PORT=8561 \ + LEMMY_DATABASE_URL=postgres://lemmy:password@postgres_gamma:5432/lemmy \ + LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-alpha,lemmy-beta,lemmy-delta,lemmy-epsilon \ + LEMMY_SETUP__ADMIN_USERNAME=lemmy_gamma \ + LEMMY_SETUP__SITE_NAME=lemmy-gamma \ + ../target/debug/lemmy_server & + +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@postgres_delta:5432/lemmy \ + LEMMY_FEDERATION__ALLOWED_INSTANCES=lemmy-beta \ + LEMMY_SETUP__ADMIN_USERNAME=lemmy_delta \ + LEMMY_SETUP__SITE_NAME=lemmy-delta \ + ../target/debug/lemmy_server & + +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@postgres_epsilon:5432/lemmy \ + LEMMY_FEDERATION__BLOCKED_INSTANCES=lemmy-alpha \ + LEMMY_SETUP__ADMIN_USERNAME=lemmy_epsilon \ + LEMMY_SETUP__SITE_NAME=lemmy-epsilon \ + ../target/debug/lemmy_server & + +echo "wait for all instances to start" +while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8541/api/v1/site')" != "200" ]]; do sleep 1; done +while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8551/api/v1/site')" != "200" ]]; do sleep 1; done +while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8561/api/v1/site')" != "200" ]]; do sleep 1; done +while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8571/api/v1/site')" != "200" ]]; do sleep 1; done +while [[ "$(curl -s -o /dev/null -w '%{http_code}' 'localhost:8581/api/v1/site')" != "200" ]]; do sleep 1; done