Skip to content
This repository was archived by the owner on Aug 2, 2022. It is now read-only.

Commit 103ce84

Browse files
authored
Merge pull request #9657 from EOSIO/zach-2.0-test
CI: Fix Serial Test Bug + Simplification + UX
2 parents a0619de + 599c78b commit 103ce84

13 files changed

+124
-102
lines changed

.cicd/build.sh

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,48 @@
11
#!/bin/bash
22
set -eo pipefail
3+
[[ "$ENABLE_INSTALL" == 'true' ]] || echo '--- :evergreen_tree: Configuring Environment'
34
. ./.cicd/helpers/general.sh
45
mkdir -p "$BUILD_DIR"
5-
CMAKE_EXTRAS="-DCMAKE_BUILD_TYPE='Release' -DENABLE_MULTIVERSION_PROTOCOL_TEST=true -DBUILD_MONGO_DB_PLUGIN=true"
6+
CMAKE_EXTRAS="-DCMAKE_BUILD_TYPE=\"Release\" -DENABLE_MULTIVERSION_PROTOCOL_TEST=\"true\" -DBUILD_MONGO_DB_PLUGIN=\"true\""
67
if [[ "$(uname)" == 'Darwin' && "$FORCE_LINUX" != 'true' ]]; then
78
# You can't use chained commands in execute
89
if [[ "$GITHUB_ACTIONS" == 'true' ]]; then
9-
export PINNED=false
10+
export PINNED='false'
1011
fi
11-
[[ ! "$PINNED" == 'false' ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=$HELPERS_DIR/clang.make"
12+
[[ ! "$PINNED" == 'false' ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=\"$HELPERS_DIR/clang.make\""
1213
cd "$BUILD_DIR"
14+
echo '+++ :hammer_and_wrench: Building EOSIO'
1315
CMAKE_COMMAND="cmake $CMAKE_EXTRAS .."
1416
echo "$ $CMAKE_COMMAND"
1517
eval $CMAKE_COMMAND
1618
MAKE_COMMAND="make -j '$JOBS'"
1719
echo "$ $MAKE_COMMAND"
1820
eval $MAKE_COMMAND
21+
cd ..
1922
else # Linux
20-
ARGS=${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"}
21-
PRE_COMMANDS="cd '$MOUNTED_DIR/build'"
23+
ARGS=${ARGS:-"--rm --init -v \"\$(pwd):$MOUNTED_DIR\""}
24+
PRE_COMMANDS="cd \"$MOUNTED_DIR/build\""
2225
# PRE_COMMANDS: Executed pre-cmake
2326
# CMAKE_EXTRAS: Executed within and right before the cmake path (cmake CMAKE_EXTRAS ..)
24-
[[ ! "$IMAGE_TAG" =~ 'unpinned' ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE='$MOUNTED_DIR/.cicd/helpers/clang.make'"
27+
[[ ! "$IMAGE_TAG" =~ 'unpinned' ]] && CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_TOOLCHAIN_FILE=\"$MOUNTED_DIR/.cicd/helpers/clang.make\""
2528
if [[ "$IMAGE_TAG" == 'amazon_linux-2-unpinned' ]]; then
26-
CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++' -DCMAKE_C_COMPILER='clang'"
29+
CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER=\"clang++\" -DCMAKE_C_COMPILER=\"clang\""
2730
elif [[ "$IMAGE_TAG" == 'centos-7.7-unpinned' ]]; then
28-
PRE_COMMANDS="$PRE_COMMANDS && source /opt/rh/devtoolset-8/enable && source /opt/rh/rh-python36/enable"
29-
CMAKE_EXTRAS="$CMAKE_EXTRAS -DLLVM_DIR='/opt/rh/llvm-toolset-7.0/root/usr/lib64/cmake/llvm'"
31+
PRE_COMMANDS="$PRE_COMMANDS && source \"/opt/rh/devtoolset-8/enable\" && source \"/opt/rh/rh-python36/enable\""
32+
CMAKE_EXTRAS="$CMAKE_EXTRAS -DLLVM_DIR=\"/opt/rh/llvm-toolset-7.0/root/usr/lib64/cmake/llvm\""
3033
elif [[ "$IMAGE_TAG" == 'ubuntu-18.04-unpinned' ]]; then
31-
CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER='clang++-7' -DCMAKE_C_COMPILER='clang-7' -DLLVM_DIR='/usr/lib/llvm-7/lib/cmake/llvm'"
34+
CMAKE_EXTRAS="$CMAKE_EXTRAS -DCMAKE_CXX_COMPILER=\"clang++-7\" -DCMAKE_C_COMPILER=\"clang-7\" -DLLVM_DIR=\"/usr/lib/llvm-7/lib/cmake/llvm\""
3235
fi
33-
BUILD_COMMANDS="cmake $CMAKE_EXTRAS .. && make -j '$JOBS'"
36+
CMAKE_COMMAND="cmake \$CMAKE_EXTRAS .."
37+
MAKE_COMMAND="make -j $JOBS"
38+
BUILD_COMMANDS="echo \"+++ :hammer_and_wrench: Building EOSIO\" && echo \"$ $CMAKE_COMMAND\" && eval $CMAKE_COMMAND && echo \"$ $MAKE_COMMAND\" && eval $MAKE_COMMAND"
3439
# Docker Commands
3540
if [[ "$BUILDKITE" == 'true' ]]; then
3641
# Generate Base Images
37-
"$CICD_DIR/generate-base-images.sh"
38-
[[ "$ENABLE_INSTALL" == 'true' ]] && COMMANDS="cp -r $MOUNTED_DIR /root/eosio && cd /root/eosio/build &&"
42+
BASE_IMAGE_COMMAND="\"$CICD_DIR/generate-base-images.sh\""
43+
echo "$ $BASE_IMAGE_COMMAND"
44+
eval $BASE_IMAGE_COMMAND
45+
[[ "$ENABLE_INSTALL" == 'true' ]] && COMMANDS="cp -r \"$MOUNTED_DIR\" \"/root/eosio\" && cd \"/root/eosio/build\" &&"
3946
COMMANDS="$COMMANDS $BUILD_COMMANDS"
4047
[[ "$ENABLE_INSTALL" == 'true' ]] && COMMANDS="$COMMANDS && make install"
4148
elif [[ "$GITHUB_ACTIONS" == 'true' ]]; then
@@ -46,7 +53,16 @@ else # Linux
4653
fi
4754
. "$HELPERS_DIR/file-hash.sh" "$CICD_DIR/platforms/$PLATFORM_TYPE/$IMAGE_TAG.dockerfile"
4855
COMMANDS="$PRE_COMMANDS && $COMMANDS"
49-
DOCKER_RUN="docker run $ARGS $(buildkite-intrinsics) '$FULL_TAG' bash -c '$COMMANDS'"
56+
DOCKER_RUN="docker run $ARGS $(buildkite-intrinsics) --env CMAKE_EXTRAS='$CMAKE_EXTRAS' '$FULL_TAG' bash -c '$COMMANDS'"
5057
echo "$ $DOCKER_RUN"
5158
eval $DOCKER_RUN
5259
fi
60+
if [[ "$BUILDKITE" == 'true' && "$ENABLE_INSTALL" != 'true' ]]; then
61+
echo '--- :arrow_up: Uploading Artifacts'
62+
echo 'Compressing build directory.'
63+
tar -pczf 'build.tar.gz' build
64+
echo 'Uploading build directory.'
65+
buildkite-agent artifact upload 'build.tar.gz'
66+
echo 'Done uploading artifacts.'
67+
fi
68+
[[ "$ENABLE_INSTALL" == 'true' ]] || echo '--- :white_check_mark: Done!'

.cicd/docker-tag.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22
set -eo pipefail
3-
echo '+++ :evergreen_tree: Configuring Environment'
3+
echo '--- :evergreen_tree: Configuring Environment'
44
. ./.cicd/helpers/general.sh
55
PREFIX='base-ubuntu-18.04'
66
SANITIZED_BRANCH=$(echo "$BUILDKITE_BRANCH" | sed 's.^/..' | sed 's/[:/]/_/g')
@@ -52,7 +52,7 @@ for REGISTRY in ${CONTRACT_REGISTRIES[*]}; do
5252
fi
5353
done
5454
# cleanup
55-
echo '+++ :put_litter_in_its_place: Cleaning Up'
55+
echo '--- :put_litter_in_its_place: Cleaning Up'
5656
for REGISTRY in ${CONTRACT_REGISTRIES[*]}; do
5757
if [[ ! -z "$REGISTRY" ]]; then
5858
echo "Cleaning up from $REGISTRY."

.cicd/generate-base-images.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ set -eo pipefail
33
. ./.cicd/helpers/general.sh
44
. "$HELPERS_DIR/file-hash.sh" "$CICD_DIR/platforms/$PLATFORM_TYPE/$IMAGE_TAG.dockerfile"
55
# search for base image in docker registries
6-
echo "+++ :mag_right: Looking for $HASHED_IMAGE_TAG"
6+
echo '--- :docker: Build or Pull Base Image :minidisc:'
7+
echo "Looking for '$HASHED_IMAGE_TAG' container in our registries."
78
EXISTS_ALL='true'
89
EXISTS_DOCKER_HUB='false'
910
EXISTS_ECR='false'

.cicd/generate-pipeline.sh

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ echo $PLATFORMS_JSON_ARRAY | jq -cr '.[]' | while read -r PLATFORM_JSON; do
9696
if [[ ! "$(echo "$PLATFORM_JSON" | jq -r .FILE_NAME)" =~ 'macos' ]]; then
9797
cat <<EOF
9898
- label: "$(echo "$PLATFORM_JSON" | jq -r .ICON) $(echo "$PLATFORM_JSON" | jq -r .PLATFORM_NAME_FULL) - Build"
99-
command:
100-
- "./.cicd/build.sh"
101-
- "tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz"
99+
command: "./.cicd/build.sh"
102100
env:
103101
IMAGE_TAG: $(echo "$PLATFORM_JSON" | jq -r .FILE_NAME)
104102
PLATFORM_TYPE: $PLATFORM_TYPE
@@ -114,7 +112,6 @@ EOF
114112
command:
115113
- "git clone \$BUILDKITE_REPO eos && cd eos && $GIT_FETCH git checkout -f \$BUILDKITE_COMMIT && git submodule update --init --recursive"
116114
- "cd eos && ./.cicd/build.sh"
117-
- "cd eos && tar -pczf build.tar.gz build && buildkite-agent artifact upload build.tar.gz"
118115
plugins:
119116
- EOSIO/anka#v0.6.1:
120117
no-volume: true

.cicd/helpers/general.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export BUILD_DIR="$ROOT_DIR/build"
33
export CICD_DIR="$ROOT_DIR/.cicd"
44
export HELPERS_DIR="$CICD_DIR/helpers"
55
export JOBS=${JOBS:-"$(getconf _NPROCESSORS_ONLN)"}
6-
export MOUNTED_DIR='/workdir'
6+
export MOUNTED_DIR='/eos'
77
export DOCKER_CLI_EXPERIMENTAL='enabled'
88
export DOCKERHUB_CI_REGISTRY="docker.io/eosio/ci"
99
export DOCKERHUB_CONTRACTS_REGISTRY="docker.io/eosio/ci-contracts-builder"

.cicd/installation-build.sh

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
#!/bin/bash
22
set -eo pipefail
3+
echo '--- :evergreen_tree: Configuring Environment'
34
. ./.cicd/helpers/general.sh
4-
export ENABLE_INSTALL=true
5+
export ENABLE_INSTALL='true'
56
export BRANCH=$(echo $BUILDKITE_BRANCH | sed 's.^/..' | sed 's/[:/]/_/g')
67
export CONTRACTS_BUILDER_TAG="eosio/ci-contracts-builder:base-ubuntu-18.04"
7-
export ARGS="--name ci-contracts-builder-$BUILDKITE_PIPELINE_SLUG-$BUILDKITE_BUILD_NUMBER --init -v $(pwd):$MOUNTED_DIR"
8-
"$CICD_DIR/build.sh"
8+
export ARGS="--name ci-contracts-builder-$BUILDKITE_PIPELINE_SLUG-$BUILDKITE_BUILD_NUMBER --init -v \"\$(pwd):$MOUNTED_DIR\""
9+
BUILD_COMMAND="'$CICD_DIR/build.sh'"
10+
echo "$ $BUILD_COMMAND"
11+
eval $BUILD_COMMAND
12+
echo '+++ :arrow_up: Pushing Container'
913
for REGISTRY in "${CONTRACT_REGISTRIES[@]}"; do
10-
if [[ ! -z $REGISTRY ]]; then
14+
if [[ ! -z "$REGISTRY" ]]; then
1115
COMMITS=("$REGISTRY:base-ubuntu-18.04-$BUILDKITE_COMMIT" "$REGISTRY:base-ubuntu-18.04-$BUILDKITE_COMMIT-$PLATFORM_TYPE" "$REGISTRY:base-ubuntu-18.04-$BRANCH-$BUILDKITE_COMMIT")
1216
for COMMIT in "${COMMITS[@]}"; do
1317
COMMIT_COMMAND="docker commit 'ci-contracts-builder-$BUILDKITE_PIPELINE_SLUG-$BUILDKITE_BUILD_NUMBER' '$COMMIT'"
@@ -19,9 +23,11 @@ for REGISTRY in "${CONTRACT_REGISTRIES[@]}"; do
1923
done
2024
fi
2125
done
26+
echo '--- :put_litter_in_its_place: Cleaning Up'
2227
DOCKER_STOP_COMMAND="docker stop 'ci-contracts-builder-$BUILDKITE_PIPELINE_SLUG-$BUILDKITE_BUILD_NUMBER'"
2328
echo "$ $DOCKER_STOP_COMMAND"
2429
eval $DOCKER_STOP_COMMAND
2530
DOCKER_RM_COMMAND="docker rm 'ci-contracts-builder-$BUILDKITE_PIPELINE_SLUG-$BUILDKITE_BUILD_NUMBER'"
2631
echo "$ $DOCKER_RM_COMMAND"
2732
eval $DOCKER_RM_COMMAND
33+
echo '--- :white_check_mark: Done!'

.cicd/multiversion.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set -eo pipefail # exit on failure of any "simple" command (excludes &&, ||, or
33
# variables
44
GIT_ROOT="$(dirname $BASH_SOURCE[0])/.."
55
cd "$GIT_ROOT"
6-
echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment"
6+
echo "--- $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment"
77
[[ "$PIPELINE_CONFIG" == '' ]] && export PIPELINE_CONFIG='pipeline.json'
88
[[ "$RAW_PIPELINE_CONFIG" == '' ]] && export RAW_PIPELINE_CONFIG='pipeline.jsonc'
99
[[ ! -d "$GIT_ROOT/eos_multiversion_builder" ]] && mkdir "$GIT_ROOT/eos_multiversion_builder"

.cicd/package.sh

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,45 @@
11
#!/bin/bash
22
set -eo pipefail
3+
echo '--- :evergreen_tree: Configuring Environment'
34
. ./.cicd/helpers/general.sh
45
mkdir -p "$BUILD_DIR"
56
if [[ $(uname) == 'Darwin' && $FORCE_LINUX != true ]]; then
7+
echo '+++ :package: Packaging EOSIO'
68
PACKAGE_COMMANDS="bash -c 'cd build/packages && chmod 755 ./*.sh && ./generate_package.sh brew'"
79
echo "$ $PACKAGE_COMMANDS"
810
eval $PACKAGE_COMMANDS
911
ARTIFACT='*.rb;*.tar.gz'
10-
cd build/packages
11-
[[ -d x86_64 ]] && cd 'x86_64' # backwards-compatibility with release/1.6.x
12-
if [[ "$BUILDKITE" == 'true' ]]; then
13-
buildkite-agent artifact upload "./$ARTIFACT" --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN
14-
fi
15-
for A in $(echo $ARTIFACT | tr ';' ' '); do
16-
if [[ $(ls $A | grep -c '') == 0 ]]; then
17-
echo "+++ :no_entry: ERROR: Expected artifact \"$A\" not found!"
18-
pwd
19-
ls -la
20-
exit 1
21-
fi
22-
done
2312
else # Linux
24-
ARGS="${ARGS:-"--rm --init -v $(pwd):$MOUNTED_DIR"}"
13+
echo '--- :docker: Selecting Container'
14+
ARGS="${ARGS:-"--rm --init -v \"\$(pwd):$MOUNTED_DIR\""}"
2515
. "$HELPERS_DIR/file-hash.sh" "$CICD_DIR/platforms/$PLATFORM_TYPE/$IMAGE_TAG.dockerfile"
26-
PRE_COMMANDS="cd '$MOUNTED_DIR/build/packages' && chmod 755 ./*.sh"
16+
PRE_COMMANDS="cd \"$MOUNTED_DIR/build/packages\" && chmod 755 ./*.sh"
2717
if [[ "$IMAGE_TAG" =~ "ubuntu" ]]; then
2818
ARTIFACT='*.deb'
2919
PACKAGE_TYPE='deb'
30-
PACKAGE_COMMANDS="./generate_package.sh '$PACKAGE_TYPE'"
20+
PACKAGE_COMMANDS="./generate_package.sh \"$PACKAGE_TYPE\""
3121
elif [[ "$IMAGE_TAG" =~ "centos" ]]; then
3222
ARTIFACT='*.rpm'
3323
PACKAGE_TYPE='rpm'
34-
PACKAGE_COMMANDS="mkdir -p ~/rpmbuild/BUILD && mkdir -p ~/rpmbuild/BUILDROOT && mkdir -p ~/rpmbuild/RPMS && mkdir -p ~/rpmbuild/SOURCES && mkdir -p ~/rpmbuild/SPECS && mkdir -p ~/rpmbuild/SRPMS && yum install -y rpm-build && ./generate_package.sh '$PACKAGE_TYPE'"
24+
PACKAGE_COMMANDS="mkdir -p ~/rpmbuild/BUILD && mkdir -p ~/rpmbuild/BUILDROOT && mkdir -p ~/rpmbuild/RPMS && mkdir -p ~/rpmbuild/SOURCES && mkdir -p ~/rpmbuild/SPECS && mkdir -p ~/rpmbuild/SRPMS && yum install -y rpm-build && ./generate_package.sh \"$PACKAGE_TYPE\""
3525
fi
36-
COMMANDS="$PRE_COMMANDS && $PACKAGE_COMMANDS"
26+
COMMANDS="echo \"+++ :package: Packaging EOSIO\" && $PRE_COMMANDS && $PACKAGE_COMMANDS"
3727
DOCKER_RUN_COMMAND="docker run $ARGS $(buildkite-intrinsics) '$FULL_TAG' bash -c '$COMMANDS'"
3828
echo "$ $DOCKER_RUN_COMMAND"
3929
eval $DOCKER_RUN_COMMAND
40-
cd build/packages
41-
[[ -d x86_64 ]] && cd 'x86_64' # backwards-compatibility with release/1.6.x
42-
if [[ "$BUILDKITE" == 'true' ]]; then
43-
buildkite-agent artifact upload "./$ARTIFACT" --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN
44-
fi
45-
for A in $(echo $ARTIFACT | tr ';' ' '); do
46-
if [[ $(ls "$A" | grep -c '') == 0 ]]; then
47-
echo "+++ :no_entry: ERROR: Expected artifact \"$A\" not found!"
48-
pwd
49-
ls -la
50-
exit 1
51-
fi
52-
done
5330
fi
31+
cd build/packages
32+
[[ -d x86_64 ]] && cd 'x86_64' # backwards-compatibility with release/1.6.x
33+
if [[ "$BUILDKITE" == 'true' ]]; then
34+
echo '--- :arrow_up: Uploading Artifacts'
35+
buildkite-agent artifact upload "./$ARTIFACT" --agent-access-token $BUILDKITE_AGENT_ACCESS_TOKEN
36+
fi
37+
for A in $(echo $ARTIFACT | tr ';' ' '); do
38+
if [[ $(ls "$A" | grep -c '') == 0 ]]; then
39+
echo "+++ :no_entry: ERROR: Expected artifact \"$A\" not found!"
40+
pwd
41+
ls -la
42+
exit 1
43+
fi
44+
done
45+
echo '--- :white_check_mark: Done!'

.cicd/test.sh

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@ set -eo pipefail
66
if [[ $(uname) == 'Darwin' ]]; then # macOS
77
export PATH=$PATH:~/mongodb/bin
88
set +e # defer error handling to end
9-
"./$@"
9+
TEST_COMMAND="\"./$1\" ${@: 2}"
10+
echo "$ $TEST_COMMAND"
11+
eval $TEST_COMMAND
1012
EXIT_STATUS=$?
1113
else # Linux
12-
COMMANDS="$MOUNTED_DIR/$@"
14+
echo '--- :docker: Selecting Container'
15+
TEST_COMMAND="'\"'$MOUNTED_DIR/$1'\"' ${@: 2}"
16+
COMMANDS="echo \"$ $TEST_COMMAND\" && eval $TEST_COMMAND"
1317
. "$HELPERS_DIR/file-hash.sh" "$CICD_DIR/platforms/$PLATFORM_TYPE/$IMAGE_TAG.dockerfile"
14-
echo "$ docker run --rm --init -v \"$(pwd):$MOUNTED_DIR\" $(buildkite-intrinsics) -e JOBS -e BUILDKITE_API_KEY \"$FULL_TAG\" bash -c \"$COMMANDS\""
15-
DOCKER_RUN_COMMAND="docker run --rm --init -v '$(pwd):$MOUNTED_DIR' $(buildkite-intrinsics) -e JOBS -e BUILDKITE_API_KEY '$FULL_TAG' bash -c '$COMMANDS'"
18+
DOCKER_RUN_COMMAND="docker run --rm --init -v \"\$(pwd):$MOUNTED_DIR\" $(buildkite-intrinsics) -e JOBS -e BUILDKITE_API_KEY '$FULL_TAG' bash -c '$COMMANDS'"
1619
set +e # defer error handling to end
1720
echo "$ $DOCKER_RUN_COMMAND"
1821
eval $DOCKER_RUN_COMMAND
@@ -22,7 +25,7 @@ fi
2225
if [[ "$BUILDKITE" == 'true' ]]; then
2326
cd build
2427
# upload artifacts
25-
echo '+++ :arrow_up: Uploading Artifacts'
28+
echo '--- :arrow_up: Uploading Artifacts'
2629
echo 'Compressing core dumps...'
2730
[[ $((`ls -1 core.* 2>/dev/null | wc -l`)) != 0 ]] && tar czf core.tar.gz core.* || : # collect core dumps
2831
echo 'Exporting xUnit XML'
@@ -36,7 +39,8 @@ if [[ "$BUILDKITE" == 'true' ]]; then
3639
echo 'Done uploading artifacts.'
3740
fi
3841
# re-throw
39-
if [[ "$EXIT_STATUS" != 0 ]]; then
42+
if [[ "$EXIT_STATUS" != '0' ]]; then
4043
echo "Failing due to non-zero exit status from ctest: $EXIT_STATUS"
4144
exit $EXIT_STATUS
4245
fi
46+
echo '--- :white_check_mark: Done!'

scripts/long-running-test.sh

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
#!/bin/bash
22
set -eo pipefail
33
# variables
4-
echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment"
4+
echo "--- $([[ "$BUILDKITE" == 'true' ]] && echo ':evergreen_tree: ')Configuring Environment"
55
GIT_ROOT="$(dirname $BASH_SOURCE[0])/.."
6-
[[ -z "$TEST" ]] && export TEST=$1
6+
[[ -z "$TEST" ]] && export TEST="$1"
77
if [[ "$(uname)" == 'Linux' ]]; then
88
. /etc/os-release
99
if [[ "$ID" == 'centos' ]]; then
1010
[[ -f /opt/rh/rh-python36/enable ]] && source /opt/rh/rh-python36/enable
1111
fi
1212
fi
13-
cd $GIT_ROOT/build
13+
cd "$GIT_ROOT/build"
1414
# mongoDB
1515
if [[ ! -z "$(pgrep mongod)" ]]; then
1616
echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Killing old MongoDB"
@@ -26,13 +26,14 @@ fi
2626
if [[ -z "$TEST" ]]; then # run all serial tests
2727
# count tests
2828
echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running Long-Running Tests"
29-
TEST_COUNT=$(ctest -N -L long_running_tests | grep -i 'Total Tests: ' | cut -d ':' -f 2 | awk '{print $1}')
30-
if [[ $TEST_COUNT > 0 ]]; then
29+
TEST_COUNT=$(ctest -N -L 'long_running_tests' | grep -i 'Total Tests: ' | cut -d ':' -f '2' | awk '{print $1}')
30+
if [[ "$TEST_COUNT" > '0' ]]; then
3131
echo "$TEST_COUNT tests found."
3232
# run tests
3333
set +e # defer ctest error handling to end
34-
echo '$ ctest -L long_running_tests --output-on-failure -T Test'
35-
ctest -L long_running_tests --output-on-failure -T Test
34+
CTEST_COMMAND="ctest -L 'long_running_tests' --output-on-failure -T 'Test'"
35+
echo "$ $CTEST_COMMAND"
36+
eval $CTEST_COMMAND
3637
EXIT_STATUS=$?
3738
echo 'Done running long-running tests.'
3839
else
@@ -42,13 +43,14 @@ if [[ -z "$TEST" ]]; then # run all serial tests
4243
else # run specific serial test
4344
# ensure test exists
4445
echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':microscope: ')Running $TEST"
45-
TEST_COUNT=$(ctest -N -R ^$TEST$ | grep -i 'Total Tests: ' | cut -d ':' -f 2 | awk '{print $1}')
46-
if [[ $TEST_COUNT > 0 ]]; then
46+
TEST_COUNT=$(ctest -N -R "^$TEST$" | grep -i 'Total Tests: ' | cut -d ':' -f '2' | awk '{print $1}')
47+
if [[ "$TEST_COUNT" > '0' ]]; then
4748
echo "$TEST found."
4849
# run tests
4950
set +e # defer ctest error handling to end
50-
echo "$ ctest -R ^$TEST$ --output-on-failure -T Test"
51-
ctest -R ^$TEST$ --output-on-failure -T Test
51+
CTEST_COMMAND="ctest -R '^$TEST$' --output-on-failure -T 'Test'"
52+
echo "$ $CTEST_COMMAND"
53+
eval $CTEST_COMMAND
5254
EXIT_STATUS=$?
5355
echo "Done running $TEST."
5456
else
@@ -60,4 +62,4 @@ if [[ ! -z "$(pgrep mongod)" ]]; then
6062
echo "+++ $([[ "$BUILDKITE" == 'true' ]] && echo ':leaves: ')Killing MongoDB"
6163
$(pgrep mongod | xargs kill -9) || :
6264
fi
63-
exit $EXIT_STATUS
65+
exit $EXIT_STATUS

0 commit comments

Comments
 (0)