mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2025-12-30 17:00:57 -06:00
adapt script for running tests
This commit is contained in:
@@ -13,7 +13,14 @@ WHITE := $(shell tput -Txterm setaf 7)
|
||||
RESET := $(shell tput -Txterm sgr0)
|
||||
|
||||
## default values only for sub-make calls
|
||||
COMPOSE_FILE ?= src/redis.yml:src/opencloud-base.yml:src/acceptance.yml
|
||||
ifeq ($(LOCAL_TEST),true)
|
||||
COMPOSE_FILE ?= src/opencloud-base.yml:src/tika.yml
|
||||
ifeq ($(START_EMAIL),true)
|
||||
COMPOSE_FILE := $(COMPOSE_FILE):src/email.yml
|
||||
endif
|
||||
else
|
||||
COMPOSE_FILE ?= src/redis.yml:src/opencloud-base.yml:src/acceptance.yml
|
||||
endif
|
||||
|
||||
## user input
|
||||
BEHAT_FEATURE ?=
|
||||
@@ -188,14 +195,14 @@ $(targets):
|
||||
.PHONY: testSuite
|
||||
testSuite: $(OC_WRAPPER) build-dev-image clean-docker-container
|
||||
@if [ -n "${START_CEPH}" ]; then \
|
||||
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
||||
COMPOSE_FILE=src/ceph.yml \
|
||||
docker compose run start_ceph; \
|
||||
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
||||
COMPOSE_FILE=src/ceph.yml \
|
||||
docker compose run start_ceph; \
|
||||
fi; \
|
||||
if [ "${START_EMAIL}" == "true" ]; then \
|
||||
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
||||
COMPOSE_FILE=src/email.yml \
|
||||
docker compose run start_email; \
|
||||
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
||||
COMPOSE_FILE=src/email.yml \
|
||||
docker compose run start_email; \
|
||||
fi; \
|
||||
if [ "${START_ANTIVIRUS}" == "true" ]; then \
|
||||
COMPOSE_PROJECT_NAME=$(COMPOSE_PROJECT_NAME) \
|
||||
@@ -278,16 +285,15 @@ clean: clean-docker-container clean-docker-volumes clean-dev-docker-image clean-
|
||||
.PHONY: start-server
|
||||
start-server: ## build and start server
|
||||
@echo "Build and start server..."
|
||||
COMPOSE_FILE=src/opencloud-base.yml:src/tika.yml:src/email.yml \
|
||||
COMPOSE_FILE=$(COMPOSE_FILE) \
|
||||
COMPOSE_PROJECT_NAME=opencloud \
|
||||
SEARCH_EXTRACTOR_TYPE=tika \
|
||||
OC_IMAGE_TAG=dev \
|
||||
WITH_WRAPPER=true \
|
||||
WITH_WRAPPER=$(WITH_WRAPPER) \
|
||||
TEST_SOURCE=opencloud \
|
||||
STORAGE_DRIVER=ocis \
|
||||
OC_ASYNC_UPLOADS=true \
|
||||
START_TIKA=true \
|
||||
SEARCH_EXTRACTOR_TYPE=tika \
|
||||
START_EMAIL=true \
|
||||
OC_ADD_RUN_SERVICES=notifications \
|
||||
GRAPH_AVAILABLE_ROLES=$(GRAPH_AVAILABLE_ROLES) \
|
||||
OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST=$(OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST) \
|
||||
docker compose up -d --build --force-recreate
|
||||
|
||||
@@ -25,6 +25,8 @@ services:
|
||||
OC_ADD_RUN_SERVICES: $OC_ADD_RUN_SERVICES
|
||||
PROXY_HTTP_ADDR: "0.0.0.0:9200"
|
||||
OC_JWT_SECRET: "some-random-jwt-secret"
|
||||
GRAPH_AVAILABLE_ROLES: ${GRAPH_AVAILABLE_ROLES}
|
||||
OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST: $OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST
|
||||
|
||||
# s3ng specific settings
|
||||
STORAGE_USERS_S3NG_ENDPOINT: http://ceph:8080
|
||||
|
||||
@@ -1,11 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set required environment variables
|
||||
export LOCAL_TEST=true
|
||||
export START_EMAIL=true
|
||||
export GRAPH_AVAILABLE_ROLES="b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5,a8d5fe5e-96e3-418d-825b-534dbdf22b99,fb6c3e19-e378-47e5-b277-9732f9de6e21,58c63c02-1d89-4572-916a-870abc5a1b7d,2d00ce52-1fc2-4dbc-8b95-a73b73395f5a,1c996275-f1c9-4e71-abdf-a42f6495e960,312c0871-5ef7-4b3a-85b6-0e4074c64049"
|
||||
|
||||
# LOCAL TEST WITHOUT EXTRA ENVS
|
||||
TEST_SERVER_URL="https://opencloud-server:9200"
|
||||
OC_WRAPPER_URL="http://opencloud-server:5200"
|
||||
EXPECTED_FAILURES_FILE="tests/acceptance/expected-failures-localAPI-on-decomposed-storage.md"
|
||||
EXPECTED_FAILURES_FILE_FROM_CORE="tests/acceptance/expected-failures-API-on-decomposed-storage.md"
|
||||
|
||||
# Start server
|
||||
make -C tests/acceptance/docker start-server
|
||||
|
||||
# Wait until the server responds with HTTP 200
|
||||
echo "Waiting for server to start..."
|
||||
for i in {1..60}; do
|
||||
response_code=$(curl -sk -u admin:admin "${TEST_SERVER_URL}/graph/v1.0/users/admin" -w "%{http_code}" -o /dev/null)
|
||||
|
||||
echo "Attempt $i: Received response code $response_code" # Debugging line to see the status
|
||||
|
||||
if [ "$response_code" == "200" ]; then
|
||||
echo "✅ Server is up and running!"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [ "$response_code" != "200" ]; then
|
||||
echo "❌ Server is not up after 60 attempts."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# List of suites to run
|
||||
SUITES=(
|
||||
"apiArchiver"
|
||||
@@ -76,19 +103,6 @@ EXTRA_SUITE=(
|
||||
"cliCommands"
|
||||
)
|
||||
|
||||
E2E_SUITES=(
|
||||
"admin-settings"
|
||||
"file-action"
|
||||
"journeys"
|
||||
"navigation"
|
||||
"search"
|
||||
"shares"
|
||||
"spaces"
|
||||
"user-settings"
|
||||
)
|
||||
|
||||
EXTRA_E2E_SUITE="app-providerapp-store,keycloak,ocm,oidc"
|
||||
|
||||
# Create log directory
|
||||
LOG_DIR="./suite-logs"
|
||||
mkdir -p "$LOG_DIR"
|
||||
@@ -136,30 +150,6 @@ for SUITE in "${CORE_SUITES[@]}"; do
|
||||
fi
|
||||
done
|
||||
|
||||
# Run e2e suites
|
||||
for SUITE in "${E2E_SUITES[@]}"; do
|
||||
echo "=============================================="
|
||||
echo "Running e2e suite: $SUITE"
|
||||
echo "=============================================="
|
||||
|
||||
LOG_FILE="$LOG_DIR/${SUITE}.log"
|
||||
|
||||
# Run suite
|
||||
(
|
||||
cd services/web/_web/tests/e2e || exit 1
|
||||
BASE_URL_OPEN_CLOUD=$TEST_SERVER_URL RETRY=1 HEADLESS=true ./run-e2e.sh --suites $SUITE > "../../../../../$LOG_FILE" 2>&1
|
||||
)
|
||||
|
||||
# Check if suite was successful
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ Suite $SUITE completed successfully."
|
||||
((SUCCESS_COUNT++))
|
||||
else
|
||||
echo "❌ Suite $SUITE failed. Check log: $LOG_FILE"
|
||||
((FAILURE_COUNT++))
|
||||
fi
|
||||
done
|
||||
|
||||
# Report summary
|
||||
echo "=============================================="
|
||||
echo "Test Summary:"
|
||||
96
tests/acceptance/run_e2e_tests.sh
Executable file
96
tests/acceptance/run_e2e_tests.sh
Executable file
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set required environment variables
|
||||
export LOCAL_TEST=true
|
||||
export WITH_WRAPPER=false
|
||||
export GRAPH_AVAILABLE_ROLES="b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5,a8d5fe5e-96e3-418d-825b-534dbdf22b99,fb6c3e19-e378-47e5-b277-9732f9de6e21,58c63c02-1d89-4572-916a-870abc5a1b7d,2d00ce52-1fc2-4dbc-8b95-a73b73395f5a,1c996275-f1c9-4e71-abdf-a42f6495e960,312c0871-5ef7-4b3a-85b6-0e4074c64049,aa97fe03-7980-45ac-9e50-b325749fd7e6,63e64e19-8d43-42ec-a738-2b6af2610efa"
|
||||
export OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST="/drone/src/tests/config/drone/banned-password-list.txt"
|
||||
|
||||
TEST_SERVER_URL="https://opencloud-server:9200"
|
||||
|
||||
# Start server
|
||||
make -C tests/acceptance/docker start-server
|
||||
|
||||
# Wait until the server responds with HTTP 200
|
||||
echo "Waiting for server to start..."
|
||||
for i in {1..60}; do
|
||||
response_code=$(curl -sk -u admin:admin "${TEST_SERVER_URL}/graph/v1.0/users/admin" -w "%{http_code}" -o /dev/null)
|
||||
|
||||
echo "Attempt $i: Received response code $response_code" # Debugging line to see the status
|
||||
|
||||
if [ "$response_code" == "200" ]; then
|
||||
echo "✅ Server is up and running!"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [ "$response_code" != "200" ]; then
|
||||
echo "❌ Server is not up after 60 attempts."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
E2E_SUITES=(
|
||||
"admin-settings"
|
||||
"file-action"
|
||||
"journeys"
|
||||
"navigation"
|
||||
"search"
|
||||
"shares"
|
||||
"spaces"
|
||||
"user-settings"
|
||||
)
|
||||
|
||||
EXTRA_E2E_SUITE="app-providerapp-store,keycloak,ocm,oidc"
|
||||
|
||||
# Create log directory
|
||||
LOG_DIR="./suite-logs"
|
||||
mkdir -p "$LOG_DIR"
|
||||
|
||||
SUCCESS_COUNT=0
|
||||
FAILURE_COUNT=0
|
||||
|
||||
# Clone the repository and install dependencies
|
||||
git clone https://github.com/opencloud-eu/web
|
||||
cd web || exit 1
|
||||
pnpm i
|
||||
echo "Installation complete, moving to tests/e2e directory..."
|
||||
|
||||
# Run e2e suites
|
||||
for SUITE in "${E2E_SUITES[@]}"; do
|
||||
echo "=============================================="
|
||||
echo "Running e2e suite: $SUITE"
|
||||
echo "=============================================="
|
||||
|
||||
LOG_FILE="$LOG_DIR/${SUITE}.log"
|
||||
|
||||
# Run suite
|
||||
(
|
||||
cd tests/e2e || exit 1
|
||||
OC_BASE_URL=$TEST_SERVER_URL RETRY=1 HEADLESS=true PARALLEL=4 ./run-e2e.sh --suites $SUITE > "../../../$LOG_FILE" 2>&1
|
||||
)
|
||||
|
||||
# Check if suite was successful
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ Suite $SUITE completed successfully."
|
||||
((SUCCESS_COUNT++))
|
||||
else
|
||||
echo "❌ Suite $SUITE failed. Check log: $LOG_FILE"
|
||||
((FAILURE_COUNT++))
|
||||
fi
|
||||
done
|
||||
|
||||
# Report summary
|
||||
echo "=============================================="
|
||||
echo "Test Summary:"
|
||||
echo "✅ Successful suites: $SUCCESS_COUNT"
|
||||
echo "❌ Failed suites: $FAILURE_COUNT"
|
||||
echo "Logs saved in: $LOG_DIR"
|
||||
echo "=============================================="
|
||||
|
||||
# Cleanup: Remove the cloned web directory
|
||||
echo "🧹 Cleaning up..."
|
||||
cd ..
|
||||
rm -rf web
|
||||
echo "✅ Cleanup complete."
|
||||
Reference in New Issue
Block a user