- Disable captcha + open registrations in E2E Pleroma config - Await login after signup to avoid redirect race - Add basic register/login/post smoke specs - Fix failure artifact copying order
71 lines
1.8 KiB
Bash
71 lines
1.8 KiB
Bash
#!/bin/ash
|
|
|
|
set -eu
|
|
|
|
SEED_SENTINEL_PATH="/var/lib/pleroma/.e2e_seeded"
|
|
CONFIG_OVERRIDE_PATH="/var/lib/pleroma/config.exs"
|
|
|
|
echo "-- Waiting for database..."
|
|
while ! pg_isready -U "${DB_USER:-pleroma}" -d "postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma}" -t 1; do
|
|
sleep 1s
|
|
done
|
|
|
|
echo "-- Writing E2E config overrides..."
|
|
cat > "$CONFIG_OVERRIDE_PATH" <<'EOF'
|
|
import Config
|
|
|
|
config :pleroma, Pleroma.Captcha,
|
|
enabled: false
|
|
|
|
config :pleroma, :instance,
|
|
registrations_open: true,
|
|
account_activation_required: false,
|
|
approval_required: false
|
|
EOF
|
|
|
|
echo "-- Running migrations..."
|
|
/opt/pleroma/bin/pleroma_ctl migrate
|
|
|
|
echo "-- Starting!"
|
|
/opt/pleroma/bin/pleroma start &
|
|
PLEROMA_PID="$!"
|
|
|
|
cleanup() {
|
|
if [ -n "${PLEROMA_PID:-}" ] && kill -0 "$PLEROMA_PID" 2>/dev/null; then
|
|
kill -TERM "$PLEROMA_PID"
|
|
wait "$PLEROMA_PID" || true
|
|
fi
|
|
}
|
|
|
|
trap cleanup INT TERM
|
|
|
|
echo "-- Waiting for API..."
|
|
api_ok="false"
|
|
for _i in $(seq 1 120); do
|
|
if wget -qO- http://127.0.0.1:4000/api/v1/instance >/dev/null 2>&1; then
|
|
api_ok="true"
|
|
break
|
|
fi
|
|
sleep 1s
|
|
done
|
|
|
|
if [ "$api_ok" != "true" ]; then
|
|
echo "Timed out waiting for Pleroma API to become available"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$SEED_SENTINEL_PATH" ]; then
|
|
if [ -n "${E2E_ADMIN_USERNAME:-}" ] && [ -n "${E2E_ADMIN_PASSWORD:-}" ] && [ -n "${E2E_ADMIN_EMAIL:-}" ]; then
|
|
echo "-- Seeding admin user (${E2E_ADMIN_USERNAME})..."
|
|
if ! /opt/pleroma/bin/pleroma_ctl user new "$E2E_ADMIN_USERNAME" "$E2E_ADMIN_EMAIL" --admin --password "$E2E_ADMIN_PASSWORD" -y; then
|
|
echo "-- User already exists (or creation failed), ensuring admin + confirmed..."
|
|
/opt/pleroma/bin/pleroma_ctl user set "$E2E_ADMIN_USERNAME" --admin --confirmed
|
|
fi
|
|
else
|
|
echo "-- Skipping admin seeding (missing E2E_ADMIN_* env)"
|
|
fi
|
|
|
|
touch "$SEED_SENTINEL_PATH"
|
|
fi
|
|
|
|
wait "$PLEROMA_PID"
|