1
1
#! /bin/bash
2
2
set -e
3
3
set +x
4
+ set -o pipefail
4
5
5
6
if [[ ($1 == ' --help' ) || ($1 == ' -h' ) ]]; then
6
7
echo " usage: $( basename $0 ) [firefox-linux|firefox-win32|firefox-win64|webkit-gtk|webkit-wpe|webkit-gtk-wpe|webkit-win64|webkit-mac-10.14|webkit-mac-10.15] [-f|--force]"
@@ -116,7 +117,7 @@ trap "rm -rf ${ZIP_PATH}; rm -rf ${LOG_PATH}; cd $(pwd -P);" INT TERM EXIT
116
117
cd " $( dirname " $0 " ) "
117
118
BUILD_NUMBER=$( cat ./$BROWSER_NAME /BUILD_NUMBER)
118
119
BUILD_BLOB_PATH=" ${BROWSER_NAME} /${BUILD_NUMBER} /${BUILD_BLOB_NAME} "
119
- LOG_BLOB_PATH=" ${BROWSER_NAME} /${BUILD_NUMBER} /${BUILD_BLOB_NAME% .zip} .log.zip "
120
+ LOG_BLOB_PATH=" ${BROWSER_NAME} /${BUILD_NUMBER} /${BUILD_BLOB_NAME% .zip} .log.gz "
120
121
121
122
# pull from upstream and check if a new build has to be uploaded.
122
123
if ! [[ ($2 == ' -f' ) || ($2 == ' --force' ) ]]; then
@@ -132,52 +133,44 @@ else
132
133
echo " Force-rebuilding the build."
133
134
fi
134
135
135
- FAILED_STEP=" "
136
136
function generate_and_upload_browser_build {
137
137
# webkit-gtk-wpe is a special build doesn't need to be built.
138
138
if [[ " $BUILD_FLAVOR " == " webkit-gtk-wpe" ]]; then
139
139
echo " -- combining binaries together"
140
140
if ! ./webkit/download_gtk_and_wpe_and_zip_together.sh $ZIP_PATH ; then
141
- FAILED_STEP=" ./download_gtk_and_wpe_and_zip_together.sh"
142
- return 1
141
+ return 10
143
142
fi
144
143
echo " -- uploading"
145
144
if ! ./upload.sh $BUILD_BLOB_PATH $ZIP_PATH ; then
146
- FAILED_STEP=" ./upload.sh "
147
- return 1
145
+ return 11
148
146
fi
149
147
return 0
150
148
fi
151
149
152
150
# Other browser flavors follow typical build flow.
153
151
echo " -- preparing checkout"
154
152
if ! ./prepare_checkout.sh $BROWSER_NAME ; then
155
- FAILED_STEP=" ./prepare_checkout.sh"
156
- return 1
153
+ return 20
157
154
fi
158
155
159
156
echo " -- cleaning"
160
157
if ! ./$BROWSER_NAME /clean.sh; then
161
- FAILED_STEP=" ./clean.sh"
162
- return 1
158
+ return 21
163
159
fi
164
160
165
161
echo " -- building"
166
162
if ! ./$BROWSER_NAME /build.sh " $EXTRA_BUILD_ARGS " ; then
167
- FAILED_STEP=" ./build.sh "
168
- return 1
163
+ return 22
169
164
fi
170
165
171
166
echo " -- archiving to $ZIP_PATH "
172
167
if ! ./$BROWSER_NAME /archive.sh $ZIP_PATH " $EXTRA_ARCHIVE_ARGS " ; then
173
- FAILED_STEP=" ./archive.sh "
174
- return 1
168
+ return 23
175
169
fi
176
170
177
171
echo " -- uploading"
178
172
if ! ./upload.sh $BUILD_BLOB_PATH $ZIP_PATH ; then
179
- FAILED_STEP=" ./upload.sh "
180
- return 1
173
+ return 24
181
174
fi
182
175
return 0
183
176
}
@@ -186,7 +179,7 @@ source ./buildbots/send_telegram_message.sh
186
179
BUILD_ALIAS=" $BUILD_FLAVOR r$BUILD_NUMBER "
187
180
send_telegram_message " $BUILD_ALIAS -- started"
188
181
189
- if generate_and_upload_browser_build 2>&1 | ./sanitize_env .js | zip > $LOG_PATH ; then
182
+ if generate_and_upload_browser_build 2>&1 | ./sanitize_and_compress_log .js $LOG_PATH ; then
190
183
# Report successful build. Note: we don't know how to get zip size on MINGW.
191
184
if [[ $( uname) == MINGW* ]]; then
192
185
send_telegram_message " $BUILD_ALIAS -- uploaded"
@@ -200,6 +193,24 @@ if generate_and_upload_browser_build 2>&1 | ./sanitize_env.js | zip > $LOG_PATH;
200
193
send_telegram_message " <b>$BROWSER_NAME r${BUILD_NUMBER} COMPLETE! ✅</b> $LAST_COMMIT_MESSAGE "
201
194
fi
202
195
else
196
+ RESULT_CODE=" $? "
197
+ if (( RESULT_CODE == 10 )) ; then
198
+ FAILED_STEP=" ./download_gtk_and_wpe_and_zip_together.sh"
199
+ elif (( RESULT_CODE == 11 )) ; then
200
+ FAILED_STEP=" ./upload.sh"
201
+ elif (( RESULT_CODE == 20 )) ; then
202
+ FAILED_STEP=" ./prepare_checkout.sh"
203
+ elif (( RESULT_CODE == 21 )) ; then
204
+ FAILED_STEP=" ./clean.sh"
205
+ elif (( RESULT_CODE == 22 )) ; then
206
+ FAILED_STEP=" ./build.sh"
207
+ elif (( RESULT_CODE == 23 )) ; then
208
+ FAILED_STEP=" ./archive.sh"
209
+ elif (( RESULT_CODE == 24 )) ; then
210
+ FAILED_STEP=" ./upload.sh"
211
+ else
212
+ FAILED_STEP=" <unknown step>"
213
+ fi
203
214
# Upload logs only in case of failure and report failure.
204
215
./upload.sh ${LOG_BLOB_PATH} ${LOG_PATH} || true
205
216
send_telegram_message " $BUILD_ALIAS -- ${FAILED_STEP} failed! ❌ <a href='https://playwright.azureedge.net/builds/${LOG_BLOB_PATH} '>see logs</a>"
0 commit comments