From 774ce8ef2df35b29c2a9c20b7535a30cf2fe3e7e Mon Sep 17 00:00:00 2001 From: Samiran Saha Date: Wed, 10 Dec 2025 17:21:12 +0530 Subject: [PATCH 1/3] stability fixes --- mac/common-utils.sh | 46 ++++++++++++++++++++++++++++---------------- mac/env-setup-run.sh | 15 ++++++++------- mac/run.sh | 1 + 3 files changed, 38 insertions(+), 24 deletions(-) diff --git a/mac/common-utils.sh b/mac/common-utils.sh index 83e6bf2..229ef39 100644 --- a/mac/common-utils.sh +++ b/mac/common-utils.sh @@ -301,6 +301,7 @@ is_private_ip() { } is_domain_private() { + local is_cx_domain_private=100 domain=${CX_TEST_URL#*://} # remove protocol domain=${domain%%/*} # remove everything after first "/" log_msg_to "Website domain: $domain" @@ -466,6 +467,8 @@ detect_os() { } print_env_vars() { + local test_type=$1 + local tech_stack=$2 log_section "✅ Environment Variables" log_info "BrowserStack Username: $BROWSERSTACK_USERNAME" log_info "BrowserStack Project Name: $BROWSERSTACK_PROJECT_NAME" @@ -490,23 +493,32 @@ print_env_vars() { clean_env_vars() { log_section "✅ Clean Environment Variables" - export BROWSERSTACK_USERNAME="" - export BROWSERSTACK_ACCESS_KEY="" - export BROWSERSTACK_APP="" - export BSTACK_CAPS_JSON="" - export BSTACK_PLATFORMS="" - export CX_TEST_URL="" - export NOW_WEB_DOMAIN="" - export BROWSERSTACK_PROJECT_NAME="" - export BROWSERSTACK_BUILD_NAME="" - export BROWSERSTACK_LOCAL_CUSTOM="" - export BROWSERSTACK_LOCAL="" - export BSTACK_PARALLELS="" - export APP_PLATFORM="" - export NOW_PLATFORM="" - export BSTACK_CAPS_JSON="" - export BSTACK_PLATFORMS="" - export BROWSERSTACK_APP + + # list of variables to unset + vars=( + BROWSERSTACK_USERNAME + BROWSERSTACK_ACCESS_KEY + BROWSERSTACK_APP + BSTACK_CAPS_JSON + BSTACK_PLATFORMS + CX_TEST_URL + NOW_WEB_DOMAIN + BROWSERSTACK_PROJECT_NAME + BROWSERSTACK_BUILD_NAME + BROWSERSTACK_LOCAL_CUSTOM + BROWSERSTACK_LOCAL + BSTACK_PARALLELS + APP_PLATFORM + NOW_PLATFORM + ) + + # unset each variable safely + for var in "${vars[@]}"; do + unset "$var" + done log_info "Cleared environment variables." + + log_info "Terminating any running BrowserStack Local instances." + pgrep '[B]rowserStack' | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 || true } diff --git a/mac/env-setup-run.sh b/mac/env-setup-run.sh index 15a2b37..1fe3428 100644 --- a/mac/env-setup-run.sh +++ b/mac/env-setup-run.sh @@ -103,7 +103,7 @@ EOF mvn install -DskipTests >> "$NOW_RUN_LOG_FILE" 2>&1 || return 1 log_success "Dependencies installed" - print_env_vars + print_env_vars "$test_type" "$tech_stack" print_tests_running_log_section "mvn test -P sample-test" @@ -163,7 +163,7 @@ EOF fi log_success "Dependencies installed" - print_env_vars + print_env_vars "$test_type" "$tech_stack" log_msg_to "🚀 Running 'mvn test -P sample-test'. This could take a few minutes. Follow the Automaton build here: https://automation.browserstack.com/" print_tests_running_log_section "mvn test -P sample-test" @@ -217,7 +217,7 @@ EOF report_bstack_local_status "$local_flag" - print_env_vars + print_env_vars "$test_type" "$tech_stack" print_tests_running_log_section "browserstack-sdk pytest -s tests/*.py" log_msg_to "🚀 Running 'browserstack-sdk pytest -s tests/*.py'. This could take a few minutes. Follow the Automaton build here: https://automation.browserstack.com/" @@ -271,7 +271,7 @@ EOF export BROWSERSTACK_BUILD_NAME="now-$NOW_OS-app-python-pytest" export BROWSERSTACK_PROJECT_NAME="now-$NOW_OS-app" - print_env_vars + print_env_vars "$test_type" "$tech_stack" print_tests_running_log_section "cd $run_dir && browserstack-sdk pytest -s bstack-sample.py" # Run pytest with BrowserStack SDK from the chosen platform directory @@ -311,7 +311,8 @@ setup_web_nodejs() { export BSTACK_PARALLELS=$parallels if is_domain_private; then - local_flag=true + log_msg_to "Entered in Is domain private condition" + local_flag="true" fi export BROWSERSTACK_LOCAL_CUSTOM=$local_flag @@ -320,7 +321,7 @@ setup_web_nodejs() { report_bstack_local_status "$local_flag" - print_env_vars + print_env_vars "$test_type" "$tech_stack" # === 8️⃣ Run Tests === log_msg_to "🚀 Running 'npm run test'. This could take a few minutes. Follow the Automaton build here: https://automation.browserstack.com/" @@ -368,7 +369,7 @@ setup_app_nodejs() { export BROWSERSTACK_BUILD_NAME="now-$NOW_OS-app-nodejs-wdio" export BROWSERSTACK_PROJECT_NAME="now-$NOW_OS-app" - print_env_vars + print_env_vars "$test_type" "$tech_stack" # === 8️⃣ Run Tests === log_msg_to "🚀 Running 'npm run test'. This could take a few minutes. Follow the Automaton build here: https://automation.browserstack.com/" diff --git a/mac/run.sh b/mac/run.sh index 8aa4775..e06fcb2 100755 --- a/mac/run.sh +++ b/mac/run.sh @@ -30,6 +30,7 @@ TSTACK=$3 # Tech Stack from env (for silent mode) log_section "🧭 Setup Summary – BrowserStack NOW" log_info "Timestamp: $(date '+%Y-%m-%d %H:%M:%S')" +trap clean_env_vars EXIT # runs cleanup on script exit clean_env_vars detect_os setup_workspace From 258f1b5fafe89ddbc000d18eab70302308686ade Mon Sep 17 00:00:00 2001 From: Samiran Saha Date: Wed, 10 Dec 2025 18:05:19 +0530 Subject: [PATCH 2/3] stability fixes - do not erase username and access key --- mac/common-utils.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/mac/common-utils.sh b/mac/common-utils.sh index 229ef39..a132cb9 100644 --- a/mac/common-utils.sh +++ b/mac/common-utils.sh @@ -496,8 +496,6 @@ clean_env_vars() { # list of variables to unset vars=( - BROWSERSTACK_USERNAME - BROWSERSTACK_ACCESS_KEY BROWSERSTACK_APP BSTACK_CAPS_JSON BSTACK_PLATFORMS From c27532552a4d23e11bcd8e7cd8bbc5f3bf8fa976 Mon Sep 17 00:00:00 2001 From: Samiran Saha Date: Wed, 10 Dec 2025 18:19:06 +0530 Subject: [PATCH 3/3] stability fixes - do not remove one time setting vars --- mac/common-utils.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/mac/common-utils.sh b/mac/common-utils.sh index a132cb9..db37d7d 100644 --- a/mac/common-utils.sh +++ b/mac/common-utils.sh @@ -496,18 +496,12 @@ clean_env_vars() { # list of variables to unset vars=( - BROWSERSTACK_APP BSTACK_CAPS_JSON BSTACK_PLATFORMS - CX_TEST_URL - NOW_WEB_DOMAIN BROWSERSTACK_PROJECT_NAME BROWSERSTACK_BUILD_NAME BROWSERSTACK_LOCAL_CUSTOM BROWSERSTACK_LOCAL - BSTACK_PARALLELS - APP_PLATFORM - NOW_PLATFORM ) # unset each variable safely