Fix E2E test cases and setup for GHA (#26944)
* Fix E2E test cases and setup for GHA * Fix more test cases, apply recommendations
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
8da64a5c34
Коммит
c9cb3d5bb0
@@ -52,7 +52,7 @@ mme2e_wait_service_healthy () {
|
||||
SERVICE_NAME=${1?}
|
||||
RETRIES_LEFT=${2:-1}
|
||||
RETRIES_INTERVAL=${3:-10}
|
||||
mme2e_wait_command_success "${DC_COMMAND} ps ${SERVICE_NAME} | grep -q '\(healthy\)'" "Waiting for ${SERVICE_NAME} container to be healthy" "$RETRIES_LEFT" "$RETRIES_INTERVAL"
|
||||
mme2e_wait_command_success "${DC_COMMAND} ps ${SERVICE_NAME} | grep -qE '\(healthy\)'" "Waiting for ${SERVICE_NAME} container to be healthy" "$RETRIES_LEFT" "$RETRIES_INTERVAL"
|
||||
}
|
||||
mme2e_wait_image () {
|
||||
IMAGE_NAME=${1?}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
---
|
||||
version: "3.1"
|
||||
|
||||
services:
|
||||
dashboard:
|
||||
image: mattermostdevelopment/mirrored-node:18.17
|
||||
|
||||
@@ -45,7 +45,6 @@ generate_docker_compose_file() {
|
||||
# Image hashes in this file are for amd64 systems
|
||||
# NB: May include paths relative to the "server/build" directory, which contains the original compose file that this yaml is overriding
|
||||
|
||||
version: "2.4"
|
||||
services:
|
||||
server:
|
||||
image: \${SERVER_IMAGE}
|
||||
@@ -56,16 +55,10 @@ services:
|
||||
MM_SERVICESETTINGS_ALLOWCORSFROM: "*"
|
||||
MM_SERVICESETTINGS_ENABLELOCALMODE: "true"
|
||||
MM_SERVICESETTINGS_ENABLESECURITYFIXALERT: "false"
|
||||
MM_PLUGINSETTINGS_ENABLED: "true"
|
||||
MM_PLUGINSETTINGS_ENABLEUPLOADS: "true"
|
||||
MM_PLUGINSETTINGS_AUTOMATICPREPACKAGEDPLUGINS: "true"
|
||||
MM_TEAMSETTINGS_ENABLEOPENSERVER: "true"
|
||||
MM_SQLSETTINGS_DATASOURCE: "postgres://mmuser:mostest@localhost:5432/mattermost_test?sslmode=disable&connect_timeout=10&binary_parameters=yes"
|
||||
MM_SQLSETTINGS_DRIVERNAME: "postgres"
|
||||
MM_EMAILSETTINGS_SMTPSERVER: "localhost"
|
||||
MM_CLUSTERSETTINGS_READONLYCONFIG: "false"
|
||||
MM_SERVICESETTINGS_ENABLEONBOARDINGFLOW: "false"
|
||||
MM_FEATUREFLAGS_ONBOARDINGTOURTIPS: "false"
|
||||
MM_SERVICEENVIRONMENT: "test"
|
||||
MM_FEATUREFLAGS_MOVETHREADSENABLED: "true"
|
||||
MM_LOGSETTINGS_ENABLEDIAGNOSTICS: "false"
|
||||
|
||||
@@ -3,6 +3,16 @@ set -e -u -o pipefail
|
||||
cd "$(dirname "$0")"
|
||||
. .e2erc
|
||||
|
||||
mme2e_log "Configuring starting server parameters that may be changed at runtime"
|
||||
for SETTING in \
|
||||
TeamSettings.EnableOpenServer=true \
|
||||
PluginSettings.Enable=true \
|
||||
PluginSettings.EnableUploads=true \
|
||||
PluginSettings.AutomaticPrepackagedPlugins=true
|
||||
do
|
||||
mme2e_log "Configuring parameter: $SETTING"
|
||||
${MME2E_DC_SERVER} exec -T -- server mmctl --local config set $(tr = ' ' <<<$SETTING)
|
||||
done
|
||||
if [ -n "${MM_LICENSE:-}" ]; then
|
||||
# We prefer uploading the license here, instead of setting the env var for the server
|
||||
# This is to retain the flexibility of being able to remove it programmatically, if the tests require it
|
||||
|
||||
@@ -19,4 +19,13 @@ if ! mme2e_wait_service_healthy server 60 10; then
|
||||
mme2e_log "Mattermost container not healthy, retry attempts exhausted. Giving up." >&2
|
||||
exit 1
|
||||
fi
|
||||
for MIGRATION in migration_advanced_permissions_phase_2; do
|
||||
# Query explanation: if it doesn't find the migration in the table, there are 0 results and the command fails with a divide-by-zero error. Otherwise the command succeeds
|
||||
MIGRATION_CHECK_COMMAND="${MME2E_DC_SERVER} exec -T -- postgres psql -U mmuser mattermost_test -c \"select 1 / (select count(*) from Systems where name = '${MIGRATION}' and value = 'true');\""
|
||||
if ! mme2e_wait_command_success "$MIGRATION_CHECK_COMMAND >/dev/null 2>&1" "Waiting for migration to be completed: ${MIGRATION}" "30" "10"; then
|
||||
mme2e_log "Migration ${MIGRATION} not completed, retry attempts exhausted. Giving up." >&2
|
||||
exit 2
|
||||
fi
|
||||
mme2e_log "${MIGRATION}: completed."
|
||||
done
|
||||
mme2e_log "Mattermost container is running and healthy"
|
||||
|
||||
Ссылка в новой задаче
Block a user