Skip to content

Commit c61b9d8

Browse files
authored
CXX-2818 Minor improvements to EVG config (codecov, xtrace) (#1091)
* Move "upload code coverage" commands into script * Improve temporary xtrace disable routines
1 parent e55e85f commit c61b9d8

File tree

3 files changed

+66
-40
lines changed

3 files changed

+66
-40
lines changed

.evergreen/test.sh

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,22 @@ else
109109
# export environment variables for encryption tests
110110
set +o errexit
111111

112-
# Avoid printing credentials in logs.
113-
set +o xtrace
114-
115112
echo "Setting temporary credentials..."
116113
pushd "${DRIVERS_TOOLS:?}/.evergreen/csfle"
117-
export AWS_SECRET_ACCESS_KEY="${cse_aws_secret_access_key:?}"
118-
export AWS_ACCESS_KEY_ID="${cse_aws_access_key_id:?}"
119-
export AWS_DEFAULT_REGION="us-east-1"
114+
{
115+
# DEVPROD-4630: use BASH_XTRACEFD instead:
116+
# exec {BASH_XTRACEFD}>/dev/null
117+
is_xtrace_set="$([[ "$-" == *x* ]] && echo 1)"
118+
set +o xtrace
119+
120+
export AWS_SECRET_ACCESS_KEY="${cse_aws_secret_access_key:?}"
121+
export AWS_ACCESS_KEY_ID="${cse_aws_access_key_id:?}"
122+
export AWS_DEFAULT_REGION="us-east-1"
123+
124+
# DEVPROD-4630: use BASH_XTRACEFD instead:
125+
# unset BASH_XTRACEFD
126+
[[ "${is_xtrace_set:-}" == 1 ]] && set -o xtrace
127+
}
120128
echo "Running activate-kmstlsvenv.sh..."
121129
# shellcheck source=/dev/null
122130
. ./activate-kmstlsvenv.sh
@@ -135,18 +143,29 @@ else
135143
exit 1
136144
fi
137145

138-
export MONGOCXX_TEST_CSFLE_TLS_CA_FILE=${DRIVERS_TOOLS:?}/.evergreen/x509gen/ca.pem
139-
export MONGOCXX_TEST_CSFLE_TLS_CERTIFICATE_KEY_FILE=${DRIVERS_TOOLS:?}/.evergreen/x509gen/client.pem
140-
export MONGOCXX_TEST_AWS_TEMP_ACCESS_KEY_ID="$CSFLE_AWS_TEMP_ACCESS_KEY_ID"
141-
export MONGOCXX_TEST_AWS_TEMP_SECRET_ACCESS_KEY="$CSFLE_AWS_TEMP_SECRET_ACCESS_KEY"
142-
export MONGOCXX_TEST_AWS_TEMP_SESSION_TOKEN="$CSFLE_AWS_TEMP_SESSION_TOKEN"
143-
export MONGOCXX_TEST_AWS_SECRET_ACCESS_KEY="${cse_aws_secret_access_key:?}"
144-
export MONGOCXX_TEST_AWS_ACCESS_KEY_ID="${cse_aws_access_key_id:?}"
145-
export MONGOCXX_TEST_AZURE_TENANT_ID="${cse_azure_tenant_id:?}"
146-
export MONGOCXX_TEST_AZURE_CLIENT_ID="${cse_azure_client_id:?}"
147-
export MONGOCXX_TEST_AZURE_CLIENT_SECRET="${cse_azure_client_secret:?}"
148-
export MONGOCXX_TEST_GCP_EMAIL="${cse_gcp_email:?}"
149-
export MONGOCXX_TEST_GCP_PRIVATEKEY="${cse_gcp_privatekey:?}"
146+
{
147+
# DEVPROD-4630: use BASH_XTRACEFD instead:
148+
# exec {BASH_XTRACEFD}>/dev/null
149+
is_xtrace_set="$([[ "$-" == *x* ]] && echo 1)"
150+
set +o xtrace
151+
152+
export MONGOCXX_TEST_CSFLE_TLS_CA_FILE=${DRIVERS_TOOLS:?}/.evergreen/x509gen/ca.pem
153+
export MONGOCXX_TEST_CSFLE_TLS_CERTIFICATE_KEY_FILE=${DRIVERS_TOOLS:?}/.evergreen/x509gen/client.pem
154+
export MONGOCXX_TEST_AWS_TEMP_ACCESS_KEY_ID="$CSFLE_AWS_TEMP_ACCESS_KEY_ID"
155+
export MONGOCXX_TEST_AWS_TEMP_SECRET_ACCESS_KEY="$CSFLE_AWS_TEMP_SECRET_ACCESS_KEY"
156+
export MONGOCXX_TEST_AWS_TEMP_SESSION_TOKEN="$CSFLE_AWS_TEMP_SESSION_TOKEN"
157+
export MONGOCXX_TEST_AWS_SECRET_ACCESS_KEY="${cse_aws_secret_access_key:?}"
158+
export MONGOCXX_TEST_AWS_ACCESS_KEY_ID="${cse_aws_access_key_id:?}"
159+
export MONGOCXX_TEST_AZURE_TENANT_ID="${cse_azure_tenant_id:?}"
160+
export MONGOCXX_TEST_AZURE_CLIENT_ID="${cse_azure_client_id:?}"
161+
export MONGOCXX_TEST_AZURE_CLIENT_SECRET="${cse_azure_client_secret:?}"
162+
export MONGOCXX_TEST_GCP_EMAIL="${cse_gcp_email:?}"
163+
export MONGOCXX_TEST_GCP_PRIVATEKEY="${cse_gcp_privatekey:?}"
164+
165+
# DEVPROD-4630: use BASH_XTRACEFD instead:
166+
# unset BASH_XTRACEFD
167+
[[ "${is_xtrace_set:-}" == 1 ]] && set -o xtrace
168+
}
150169

151170
set -o errexit
152171

.evergreen/upload-code-coverage.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env bash
2+
3+
: "${codecov_token:?}"
4+
5+
: "${ENABLE_CODE_COVERAGE:-}"
6+
7+
set -o errexit
8+
set -o pipefail
9+
10+
# Nothing to do if code coverage was not enabled.
11+
if [[ "${ENABLE_CODE_COVERAGE:-}" != "ON" ]]; then
12+
exit 0
13+
fi
14+
15+
# Note: coverage is currently only enabled on the ubuntu-1804 distro.
16+
# This script does not support MacOS, Windows, or non-x86_64 distros.
17+
# Update accordingly if code coverage is expanded to other distros.
18+
curl -Os https://uploader.codecov.io/latest/linux/codecov
19+
chmod +x codecov
20+
21+
# -Z: Exit with a non-zero value if error.
22+
# -g: Run with gcov support.
23+
# -t: Codecov upload token.
24+
# perl: filter verbose "Found" list and "Processing" messages.
25+
./codecov -Zgt "${codecov_token:?}" | perl -lne 'print if not m|(^.*\.gcov(\.\.\.)?$)|'

.mci.yml

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -596,30 +596,12 @@ functions:
596596
display_name: "mongodb-logs.tar.gz"
597597

598598
"upload code coverage":
599-
- command: shell.exec
599+
- command: subprocess.exec
600600
params:
601-
shell: bash
601+
binary: bash
602602
working_dir: "mongo-cxx-driver"
603-
script: |
604-
set -o errexit
605-
set -o pipefail
606-
607-
# Nothing to do if code coverage was not enabled.
608-
if [[ "${ENABLE_CODE_COVERAGE}" != "ON" ]]; then
609-
exit 0
610-
fi
611-
612-
# Note: coverage is currently only enabled on the ubuntu-1804 distro.
613-
# This script does not support MacOS, Windows, or non-x86_64 distros.
614-
# Update accordingly if code coverage is expanded to other distros.
615-
curl -Os https://uploader.codecov.io/latest/linux/codecov
616-
chmod +x codecov
617-
618-
# -Z: Exit with a non-zero value if error.
619-
# -g: Run with gcov support.
620-
# -t: Codecov upload token.
621-
# perl: filter verbose "Found" list and "Processing" messages.
622-
./codecov -Zgt "${codecov_token}" | perl -lne 'print if not m|(^.*\.gcov(\.\.\.)?$)|'
603+
args: [-c, .evergreen/upload-code-coverage.sh]
604+
include_expansions_in_env: [codecov_token]
623605

624606
"docker-image-build":
625607
- command: shell.exec

0 commit comments

Comments
 (0)