From 74a63804dc7ae8984e334561164214d305a361bd Mon Sep 17 00:00:00 2001 From: Nutomic Date: Mon, 5 Apr 2021 17:21:56 +0000 Subject: [PATCH] Fix test failure due to config loading error (#1547) * Crash if config fails to load * fix previous commit * Fix test failure due to config loading error * Adding test fix to drone. * Logging line. * Trying to fix drone 2 * Fixing deploy script. Co-authored-by: Dessalines --- .drone.yml | 2 + config/config.hjson | 90 +++++++++++++++++++++++++++++++++++++++++- config/defaults.hjson | 91 ------------------------------------------- docker/prod/deploy.sh | 3 ++ scripts/test.sh | 3 ++ 5 files changed, 97 insertions(+), 92 deletions(-) delete mode 100644 config/defaults.hjson diff --git a/.drone.yml b/.drone.yml index bb27984f9..7dd4d3e79 100644 --- a/.drone.yml +++ b/.drone.yml @@ -29,6 +29,7 @@ steps: image: ekidd/rust-musl-builder:1.50.0 environment: LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy + LEMMY_CONFIG_LOCATION: ../../config/config.hjson RUST_BACKTRACE: 1 RUST_TEST_THREADS: 1 commands: @@ -107,6 +108,7 @@ steps: image: rust:1.50-slim-buster environment: LEMMY_DATABASE_URL: postgres://lemmy:password@database:5432/lemmy + LEMMY_CONFIG_LOCATION: ../../config/config.hjson RUST_BACKTRACE: 1 RUST_TEST_THREADS: 1 commands: diff --git a/config/config.hjson b/config/config.hjson index 286b1c031..1ab231c2f 100644 --- a/config/config.hjson +++ b/config/config.hjson @@ -1,3 +1,91 @@ { - hostname: "localhost:8536" +# # optional: parameters for automatic configuration of new instance (only used at first start) +# setup: { +# # username for the admin user +# admin_username: "" +# # password for the admin user +# admin_password: "" +# # optional: email for the admin user (can be omitted and set later through the website) +# admin_email: "" +# # name of the site (can be changed later) +# site_name: "" +# } + # settings related to the postgresql database + database: { + # username to connect to postgres + user: "lemmy" + # password to connect to postgres + password: "password" + # host where postgres is running + host: "localhost" + # port where postgres can be accessed + port: 5432 + # name of the postgres database for lemmy + database: "lemmy" + # maximum number of active sql connections + pool_size: 5 + } + # the domain name of your instance (eg "lemmy.ml") + hostname: lemmy-alpha + # address where lemmy should listen for incoming requests + bind: "0.0.0.0" + # port where lemmy should listen for incoming requests + port: 8536 + # whether tls is required for activitypub. only disable this for debugging, never for producion. + tls_enabled: true + # json web token for authorization between server and client + jwt_secret: "changeme" + # address where pictrs is available + pictrs_url: "http://pictrs:8080" + # address where iframely is available + iframely_url: "http://iframely" + # rate limits for various user actions, by user ip + rate_limit: { + # maximum number of messages created in interval + message: 180 + # interval length for message limit + message_per_second: 60 + # maximum number of posts created in interval + post: 6 + # interval length for post limit + post_per_second: 600 + # maximum number of registrations in interval + register: 3 + # interval length for registration limit + register_per_second: 3600 + # maximum number of image uploads in interval + image: 6 + # interval length for image uploads + image_per_second: 3600 + } + # settings related to activitypub federation + federation: { + # whether to enable activitypub federation. + enabled: false + # Allows and blocks are described here: + # https://join.lemmy.ml/docs/en/federation/administration.html#instance-allowlist-and-blocklist + # + # comma separated list of instances with which federation is allowed + # Only one of these blocks should be uncommented + # allowed_instances: ["instance1.tld","instance2.tld"] + # comma separated list of instances which are blocked from federating + # blocked_instances: [] + } + captcha: { + enabled: true + difficulty: medium # Can be easy, medium, or hard + } +# # email sending configuration +# email: { +# # hostname and port of the smtp server +# smtp_server: "" +# # login name for smtp server +# smtp_login: "" +# # password to login to the smtp server +# smtp_password: "" +# # address to send emails from, eg "noreply@your-instance.com" +# smtp_from_address: "" +# # whether or not smtp connections should use tls +# use_tls: true +# } } diff --git a/config/defaults.hjson b/config/defaults.hjson deleted file mode 100644 index c3eaba6e5..000000000 --- a/config/defaults.hjson +++ /dev/null @@ -1,91 +0,0 @@ -{ -# # optional: parameters for automatic configuration of new instance (only used at first start) -# setup: { -# # username for the admin user -# admin_username: "" -# # password for the admin user -# admin_password: "" -# # optional: email for the admin user (can be omitted and set later through the website) -# admin_email: "" -# # name of the site (can be changed later) -# site_name: "" -# } - # settings related to the postgresql database - database: { - # username to connect to postgres - user: "lemmy" - # password to connect to postgres - password: "password" - # host where postgres is running - host: "localhost" - # port where postgres can be accessed - port: 5432 - # name of the postgres database for lemmy - database: "lemmy" - # maximum number of active sql connections - pool_size: 5 - } - # the domain name of your instance (eg "lemmy.ml") - hostname: null - # address where lemmy should listen for incoming requests - bind: "0.0.0.0" - # port where lemmy should listen for incoming requests - port: 8536 - # whether tls is required for activitypub. only disable this for debugging, never for producion. - tls_enabled: true - # json web token for authorization between server and client - jwt_secret: "changeme" - # address where pictrs is available - pictrs_url: "http://pictrs:8080" - # address where iframely is available - iframely_url: "http://iframely" - # rate limits for various user actions, by user ip - rate_limit: { - # maximum number of messages created in interval - message: 180 - # interval length for message limit - message_per_second: 60 - # maximum number of posts created in interval - post: 6 - # interval length for post limit - post_per_second: 600 - # maximum number of registrations in interval - register: 3 - # interval length for registration limit - register_per_second: 3600 - # maximum number of image uploads in interval - image: 6 - # interval length for image uploads - image_per_second: 3600 - } - # settings related to activitypub federation - federation: { - # whether to enable activitypub federation. - enabled: false - # Allows and blocks are described here: - # https://join.lemmy.ml/docs/en/federation/administration.html#instance-allowlist-and-blocklist - # - # comma separated list of instances with which federation is allowed - # Only one of these blocks should be uncommented - # allowed_instances: ["instance1.tld","instance2.tld"] - # comma separated list of instances which are blocked from federating - # blocked_instances: [] - } - captcha: { - enabled: true - difficulty: medium # Can be easy, medium, or hard - } -# # email sending configuration -# email: { -# # hostname and port of the smtp server -# smtp_server: "" -# # login name for smtp server -# smtp_login: "" -# # password to login to the smtp server -# smtp_password: "" -# # address to send emails from, eg "noreply@your-instance.com" -# smtp_from_address: "" -# # whether or not smtp connections should use tls -# use_tls: true -# } -} diff --git a/docker/prod/deploy.sh b/docker/prod/deploy.sh index bd99fdb09..b2ee16635 100755 --- a/docker/prod/deploy.sh +++ b/docker/prod/deploy.sh @@ -13,7 +13,9 @@ git add "crates/utils/src/version.rs" popd # Changing various references to the Lemmy version +sed -i "s/dessalines\/lemmy:.*/dessalines\/lemmy:$new_tag/" ../dev/docker-compose.yml sed -i "s/dessalines\/lemmy-ui:.*/dessalines\/lemmy-ui:$new_tag/" ../dev/docker-compose.yml +sed -i "s/dessalines\/lemmy:.*/dessalines\/lemmy:$new_tag/" ../federation/docker-compose.yml sed -i "s/dessalines\/lemmy-ui:.*/dessalines\/lemmy-ui:$new_tag/" ../federation/docker-compose.yml git add ../dev/docker-compose.yml git add ../federation/docker-compose.yml @@ -22,6 +24,7 @@ git add ../federation/docker-compose.yml # IE, when the third semver is a number, not '2-rc' if [ ! -z "${third_semver##*[!0-9]*}" ]; then sed -i "s/dessalines\/lemmy:.*/dessalines\/lemmy:$new_tag/" ../prod/docker-compose.yml + sed -i "s/dessalines\/lemmy-ui:.*/dessalines\/lemmy-ui:$new_tag/" ../prod/docker-compose.yml git add ../prod/docker-compose.yml # Setting the version for Ansible diff --git a/scripts/test.sh b/scripts/test.sh index 251e6a74a..0a3fa90fc 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -5,5 +5,8 @@ psql -U lemmy -d postgres -c "DROP DATABASE lemmy;" psql -U lemmy -d postgres -c "CREATE DATABASE lemmy;" export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy +# tests are executed in working directory crates/api (or similar), +# so to load the config we need to traverse to the repo root +export LEMMY_CONFIG_LOCATION=../../config/config.hjson RUST_BACKTRACE=1 \ cargo test --workspace --no-fail-fast