@@ -13,10 +13,11 @@ usage() {
13
13
echo -e " \t-h: Show this message"
14
14
}
15
15
16
+ export UPLOAD_SAFE_LOGS=${UPLOAD_SAFE_LOGS:- " 0" }
17
+
16
18
PARALLEL_TARGET=" test-check-packages-parallel"
17
19
FALSE_POSITIVES_TARGET=" test-check-packages-false-positives"
18
20
KIND_TARGET=" test-check-packages-with-kind"
19
- LOGSTASH_TARGET=" test-check-packages-with-logstash"
20
21
SYSTEM_TEST_FLAGS_TARGET=" test-system-test-flags"
21
22
TEST_BUILD_ZIP_TARGET=" test-build-zip"
22
23
TEST_BUILD_INSTALL_ZIP_TARGET=" test-build-install-zip"
@@ -61,24 +62,71 @@ if [[ "${TARGET}" == "" ]]; then
61
62
exit 1
62
63
fi
63
64
64
- if [[ " ${SERVERLESS} " == " true" && " ${TARGET} " != " ${PARALLEL_TARGET} " ]]; then
65
- # Just tested parallel target to run with Serverless projects, other Makefile targets
66
- # have not been tested yet and could fail unexpectedly. For instance, "test-check-package-false-positives"
67
- # target would require a different management to not stop Elastic stack after each package test.
68
- echo " Target ${TARGET} is not supported for Serverless testing"
69
- usage
70
- exit 1
71
- fi
65
+ upload_package_test_logs () {
66
+ local retry_count=0
67
+ local package_folder=" "
68
+ local target=" "
69
+
70
+ if [[ " ${PACKAGE} " == " " ]]; then
71
+ echo " No package specified, skipping upload of safe logs"
72
+ return
73
+ fi
74
+
75
+ echo " --- Uploading safe logs to GCP bucket ${JOB_GCS_BUCKET_INTERNAL} "
76
+
77
+ retry_count=${BUILDKITE_RETRY_COUNT:- " 0" }
78
+ # Add target as part of the package folder name to allow to distinguish
79
+ # different test runs for the same package in different Makefile targets.
80
+ # Currently, just for test-check-packages-* targets, but could be extended
81
+ # to other targets in the future.
82
+ target=${TARGET# " test-check-packages-" }
83
+ package_folder=" ${target} .${PACKAGE} "
84
+
85
+ if [[ " ${ELASTIC_PACKAGE_TEST_ENABLE_INDEPENDENT_AGENT:- " " } " == " false" ]]; then
86
+ package_folder=" ${package_folder} -stack_agent"
87
+ fi
88
+
89
+ if [[ " ${ELASTIC_PACKAGE_FIELD_VALIDATION_TEST_METHOD:- " " } " != " " ]]; then
90
+ package_folder=" ${package_folder} -${ELASTIC_PACKAGE_FIELD_VALIDATION_TEST_METHOD} "
91
+ fi
92
+
93
+ if [[ " ${retry_count} " -ne 0 ]]; then
94
+ package_folder=" ${package_folder} _retry_${retry_count} "
95
+ fi
96
+
97
+ upload_safe_logs \
98
+ " ${JOB_GCS_BUCKET_INTERNAL} " \
99
+ " build/elastic-stack-dump/check-${PACKAGE} /logs/elastic-agent-internal/*.*" \
100
+ " insecure-logs/${package_folder} /elastic-agent-logs/"
101
+
102
+ # required for <8.6.0
103
+ upload_safe_logs \
104
+ " ${JOB_GCS_BUCKET_INTERNAL} " \
105
+ " build/elastic-stack-dump/check-${PACKAGE} /logs/elastic-agent-internal/default/*" \
106
+ " insecure-logs/${package_folder} /elastic-agent-logs/default/"
107
+
108
+ upload_safe_logs \
109
+ " ${JOB_GCS_BUCKET_INTERNAL} " \
110
+ " build/container-logs/*.log" \
111
+ " insecure-logs/${package_folder} /container-logs/"
112
+ }
72
113
73
- add_bin_path
114
+ install_required_tools () {
115
+ local target=" ${1} "
116
+
117
+ if [[ " ${SERVERLESS} " == " true" ]]; then
118
+ # If packages are tested with Serverless, these action are already performed
119
+ # here: .buildkite/scripts/test_packages_with_serverless.sh
120
+ echo " Skipping installation of required tools for Serverless testing"
121
+ return
122
+ fi
123
+
124
+ add_bin_path
74
125
75
- if [[ " $SERVERLESS " == " false" ]]; then
76
- # If packages are tested with Serverless, these actions are already performed
77
- # here: .buildkite/scripts/test_packages_with_serverless.sh
78
126
echo " --- Install go"
79
127
with_go
80
128
81
- if [[ " ${TARGET } " != " ${TEST_BUILD_ZIP_TARGET} " ]]; then
129
+ if [[ " ${target } " != " ${TEST_BUILD_ZIP_TARGET} " ]]; then
82
130
# Not supported in Macos ARM
83
131
echo " --- Install docker"
84
132
with_docker
@@ -87,87 +135,55 @@ if [[ "$SERVERLESS" == "false" ]]; then
87
135
with_docker_compose_plugin
88
136
fi
89
137
138
+ case " ${target} " in
139
+ " ${KIND_TARGET} " | " ${SYSTEM_TEST_FLAGS_TARGET} " )
140
+ echo " --- Install kind"
141
+ with_kubernetes
142
+ ;;
143
+ " ${FALSE_POSITIVES_TARGET} " | " ${TEST_BUILD_INSTALL_ZIP_TARGET} " )
144
+ echo " --- Install yq"
145
+ with_yq
146
+ ;;
147
+ esac
148
+
90
149
# In Serverless pipeline, elastic-package is installed in advance here:
91
150
# .buildkite/scripts/test_packages_with_serverless.sh
92
151
# No need to install it again for every package.
93
152
echo " --- Install elastic-package"
94
153
make install
95
- fi
154
+ }
96
155
97
- if [[ " ${TARGET} " == " ${KIND_TARGET} " || " ${TARGET} " == " ${SYSTEM_TEST_FLAGS_TARGET} " ]]; then
98
- echo " --- Install kubectl & kind"
99
- with_kubernetes
156
+ if [[ " ${SERVERLESS} " == " true" && " ${TARGET} " != " ${PARALLEL_TARGET} " ]]; then
157
+ # Just tested parallel target to run with Serverless projects, other Makefile targets
158
+ # have not been tested yet and could fail unexpectedly. For instance, "test-check-packages-false-positives"
159
+ # target would require a different management to not stop Elastic stack after each package test.
160
+ echo " Target ${TARGET} is not supported for Serverless testing"
161
+ usage
162
+ exit 1
100
163
fi
101
164
102
- if [[ " ${TARGET} " == " ${TEST_BUILD_INSTALL_ZIP_TARGET} " || " ${TARGET} " == " ${FALSE_POSITIVES_TARGET} " ]]; then
103
- echo " --- Install yq"
104
- with_yq
105
- fi
165
+ install_required_tools " ${TARGET} "
106
166
107
167
label=" ${TARGET} "
108
168
if [ -n " ${PACKAGE} " ]; then
109
169
label=" ${label} - ${PACKAGE} "
110
170
fi
111
171
112
172
echo " --- Run integration test ${label} "
113
- test_each_package=false
114
- case " ${TARGET} " in
115
- " ${PARALLEL_TARGET} " | " ${FALSE_POSITIVES_TARGET} " | " ${LOGSTASH_TARGET} " )
116
- test_each_package=true
117
- ;;
118
- esac
119
- if [[ " ${test_each_package} " == " true" ]]; then
120
- make install
121
- # allow to fail this command, to be able to upload safe logs
122
- set +e
123
- make SERVERLESS=" ${SERVERLESS} " PACKAGE_UNDER_TEST=" ${PACKAGE} " " ${TARGET} "
124
- testReturnCode=$?
125
- set -e
126
-
127
-
128
- if [[ " ${UPLOAD_SAFE_LOGS} " -eq 1 ]] ; then
129
- retry_count=${BUILDKITE_RETRY_COUNT:- " 0" }
130
- package_folder=" ${PACKAGE} "
131
-
132
- if [[ " ${ELASTIC_PACKAGE_TEST_ENABLE_INDEPENDENT_AGENT:- " " } " == " false" ]]; then
133
- package_folder=" ${package_folder} -stack_agent"
134
- fi
135
-
136
- if [[ " ${ELASTIC_PACKAGE_FIELD_VALIDATION_TEST_METHOD:- " " } " != " " ]]; then
137
- package_folder=" ${package_folder} -${ELASTIC_PACKAGE_FIELD_VALIDATION_TEST_METHOD} "
138
- fi
139
-
140
- if [[ " ${retry_count} " -ne 0 ]]; then
141
- package_folder=" ${package_folder} _retry_${retry_count} "
142
- fi
143
-
144
- echo " --- Uploading safe logs to GCP bucket ${JOB_GCS_BUCKET_INTERNAL} "
145
-
146
- upload_safe_logs \
147
- " ${JOB_GCS_BUCKET_INTERNAL} " \
148
- " build/elastic-stack-dump/check-${PACKAGE} /logs/elastic-agent-internal/*.*" \
149
- " insecure-logs/${package_folder} /elastic-agent-logs/"
150
-
151
- # required for <8.6.0
152
- upload_safe_logs \
153
- " ${JOB_GCS_BUCKET_INTERNAL} " \
154
- " build/elastic-stack-dump/check-${PACKAGE} /logs/elastic-agent-internal/default/*" \
155
- " insecure-logs/${package_folder} /elastic-agent-logs/default/"
156
-
157
- upload_safe_logs \
158
- " ${JOB_GCS_BUCKET_INTERNAL} " \
159
- " build/container-logs/*.log" \
160
- " insecure-logs/${package_folder} /container-logs/"
161
- fi
173
+ # allow to fail this command, to be able to upload safe logs
174
+ set +e
175
+ make SERVERLESS=" ${SERVERLESS} " PACKAGE_UNDER_TEST=" ${PACKAGE} " " ${TARGET} "
176
+ testReturnCode=$?
177
+ set -e
178
+
179
+ if [[ " ${UPLOAD_SAFE_LOGS} " -eq 1 ]] ; then
180
+ upload_package_test_logs
181
+ fi
162
182
163
- if [ $testReturnCode != 0 ]; then
164
- echo " make SERVERLESS=${SERVERLESS} PACKAGE_UNDER_TEST=${PACKAGE} ${TARGET} failed with ${testReturnCode} "
165
- exit ${testReturnCode}
166
- fi
167
- else
168
- make " ${TARGET} "
183
+ if [ $testReturnCode != 0 ]; then
184
+ echo " make SERVERLESS=${SERVERLESS} PACKAGE_UNDER_TEST=${PACKAGE} ${TARGET} failed with ${testReturnCode} "
185
+ exit ${testReturnCode}
169
186
fi
170
187
171
188
echo " --- Check git clean"
172
189
make check-git-clean
173
- exit 0
0 commit comments