CLD-6867 E2E Tests - Decouple cycle creation from test running (#25367)

* Separate test cycle generation from test running

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Mario Vitale
2024-01-09 11:40:33 +01:00
коммит произвёл GitHub
родитель 000aa0d891
Коммит 43c3003e9d
8 изменённых файлов: 33 добавлений и 24 удалений

Просмотреть файл

@@ -16,6 +16,7 @@ export BROWSER_DEFAULT="chrome"
export SERVER_DEFAULT="self-hosted"
export TEST_DEFAULT="cypress"
export ENABLED_DOCKER_SERVICES_DEFAULT="postgres inbucket"
export TEST_FILTER_DEFAULT='--stage=@prod --group=@smoke'
# OS specific defaults overrides
case $MME2E_OSTYPE in
darwin )
@@ -29,6 +30,7 @@ export BROWSER=${BROWSER:-$BROWSER_DEFAULT}
export SERVER=${SERVER:-$SERVER_DEFAULT}
export TEST=${TEST:-$TEST_DEFAULT}
export ENABLED_DOCKER_SERVICES=${ENABLED_DOCKER_SERVICES:-$ENABLED_DOCKER_SERVICES_DEFAULT}
export TEST_FILTER=${TEST_FILTER:-$TEST_FILTER_DEFAULT}
# Function definitions
mme2e_log () { echo "[$(date +%Y-%m-%dT%H:%M:%S%Z)]" "$@"; }

Просмотреть файл

@@ -0,0 +1,17 @@
#!/bin/bash
set -e -u -o pipefail
cd "$(dirname "$0")"
. .e2erc
mme2e_log "Loading variables from .env.cypress"
if ! [ -f .env.cypress ]; then
mme2e_log "Error: .env.cypress is required to exist, for the test cycle to be generated. Aborting." >&2
exit 1
fi
set -a
. .env.cypress
mme2e_log "Generating the test cycle on the Automation Dashboard"
cd ../cypress
# shellcheck disable=SC2086
exec node --trace-warnings generate_test_cycle.js $TEST_FILTER

Просмотреть файл

@@ -172,9 +172,6 @@ $(if mme2e_is_token_in_list "cypress" "$ENABLED_DOCKER_SERVICES"; then
env_file:
- "../../e2e-tests/.ci/.env.cypress"
environment:
REPO: "mattermost"
# Cypress configuration
HEADLESS: "true"
CYPRESS_baseUrl: "http://localhost:8065"
CYPRESS_dbConnection: "postgres://mmuser:mostest@localhost:5432/mattermost_test?sslmode=disable&connect_timeout=10"
CYPRESS_smtpUrl: "http://localhost:9001"
@@ -290,6 +287,8 @@ generate_env_files() {
export BRANCH=${BRANCH:-$BRANCH_DEFAULT}
export BUILD_ID=${BUILD_ID:-$BUILD_ID_DEFAULT}
export CI_BASE_URL="${CI_BASE_URL:-localhost}"
export REPO=mattermost # Static, but declared here for making generate_test_cycle.js easier to run
export HEADLESS=true # Static, but declared here for making generate_test_cycle.js easier to run
case "$TEST" in
cypress)
mme2e_log "Cypress: Generating .env.cypress"
@@ -298,8 +297,8 @@ generate_env_files() {
BUILD_ID
CI_BASE_URL
BROWSER
AUTOMATION_DASHBOARD_URL
AUTOMATION_DASHBOARD_TOKEN
HEADLESS
REPO
EOF
# Adding service-specific cypress variables
for SERVICE in $ENABLED_DOCKER_SERVICES; do

Просмотреть файл

@@ -3,10 +3,6 @@ set -e -u -o pipefail
cd "$(dirname "$0")"
. .e2erc
# Set required variables
TEST_FILTER_DEFAULT='--stage=@prod --group=@smoke'
TEST_FILTER=${TEST_FILTER:-$TEST_FILTER_DEFAULT}
# Print run information
mme2e_log "Printing Cypress container informations"
${MME2E_DC_SERVER} exec -T -u "$MME2E_UID" -- cypress node -p 'module.paths'
@@ -36,8 +32,6 @@ EOF
# shellcheck disable=SC2016
if ${MME2E_DC_SERVER} exec -T -u "$MME2E_UID" -- cypress bash -c '[ -n "${AUTOMATION_DASHBOARD_URL}" ]'; then
mme2e_log "AUTOMATION_DASHBOARD_URL is set. Using run_test_cycle.js for the cypress run"
# shellcheck disable=SC2086
${MME2E_DC_SERVER} exec -T -u "$MME2E_UID" -- cypress node --trace-warnings generate_test_cycle.js $TEST_FILTER
${MME2E_DC_SERVER} exec -T -u "$MME2E_UID" -- cypress node run_test_cycle.js | tee ../cypress/logs/cypress.log
else
mme2e_log "AUTOMATION_DASHBOARD_URL is unset. Using run_tests.js for the cypress run"

Просмотреть файл

@@ -3,12 +3,6 @@ set -e -u -o pipefail
cd "$(dirname "$0")"
. .e2erc
BRANCH_DEFAULT=$(git branch --show-current)
export BRANCH=${BRANCH:-$BRANCH_DEFAULT}
BUILD_ID_DEFAULT=$(date +%s)
export BUILD_ID=${BUILD_ID:-$BUILD_ID_DEFAULT}
export CI_BASE_URL="${CI_BASE_URL:-localhost}"
# Cleanup old containers, if any
mme2e_log "Stopping leftover E2E containers, if any are running"
${MME2E_DC_SERVER} down -v --remove-orphans