#!/usr/bin/env sh set -eo pipefail CONFIG="${LHCI_BASE_DIR%/}/.lighthouserc.yml" /usr/local/bin/lhci "$@" 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 DIST="${LHCI_BASE_DIR%/}/${UPLOAD_OUTPUT_DIR%/}/dist" mkdir -p "${DIST}" 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 fi fi