2020-07-16 09:53:03 +02:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
set -eo pipefail
|
|
|
|
|
|
|
|
CONFIG="${LHCI_BASE_DIR%/}/.lighthouserc.yml"
|
|
|
|
|
2020-07-17 10:21:55 +02:00
|
|
|
/usr/local/bin/lhci "$@" || ERROR=true
|
2020-07-16 09:53:03 +02:00
|
|
|
|
|
|
|
if [ -f "$CONFIG" ]; then
|
|
|
|
|
|
|
|
UPLOAD_TARGET=$(yq r "${CONFIG}" --defaultValue "" ci.upload.target)
|
|
|
|
UPLOAD_OUTPUT_DIR=$(yq r "${CONFIG}" --defaultValue "" ci.upload.outputDir)
|
|
|
|
|
|
|
|
if [ "${UPLOAD_TARGET}" = "filesystem" ] && [ -n "${UPLOAD_OUTPUT_DIR}" ] ; then
|
|
|
|
MANIFEST=${UPLOAD_OUTPUT_DIR%/}/manifest.json
|
2020-07-16 10:09:13 +02:00
|
|
|
DIST="${LHCI_BASE_DIR%/}/${UPLOAD_OUTPUT_DIR%/}/dist"
|
2020-07-16 09:53:03 +02:00
|
|
|
mkdir -p "${DIST}"
|
|
|
|
|
2020-07-17 10:21:55 +02:00
|
|
|
if [ -f "$CONFIG" ]; then
|
|
|
|
printf "\nPost-process report files...\n"
|
|
|
|
for ITEM in $(jq -r '.[] | select( .isRepresentativeRun == true ) | @base64' < "${MANIFEST}"); do
|
|
|
|
JSON=$(echo "${ITEM}" | base64 -d)
|
|
|
|
FILE_DATE=$(date '+%Y%m%d%H%M')
|
|
|
|
|
|
|
|
FILENAME=$(echo "${JSON}" | jq -r '.htmlPath')
|
|
|
|
HASH=$(sha1sum "$FILENAME")
|
|
|
|
FILENAME_NEW="${HASH:0:8}-$FILE_DATE"
|
|
|
|
URL=$(echo "${JSON}" | jq -r '.url')
|
|
|
|
|
|
|
|
cp "${FILENAME}" "${DIST}/${FILENAME_NEW}.html"
|
|
|
|
echo "Report for ${URL} will be uploaded to ${LHCI_SERVER_URL%/}/$(basename "${FILENAME_NEW}").html"
|
|
|
|
done
|
|
|
|
else
|
|
|
|
printf "\nPost-processing skipped. Manifest not found!\n"
|
|
|
|
fi
|
2020-07-16 09:53:03 +02:00
|
|
|
fi
|
|
|
|
fi
|
2020-07-17 10:21:55 +02:00
|
|
|
|
|
|
|
if [ -n "$ERROR" ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|