build: add more logging

This commit is contained in:
Marcus Holland-Moritz 2025-04-20 21:55:42 +02:00
parent 046c4088c8
commit cfc7e2454d

View File

@ -8,11 +8,24 @@ LOCAL_REPO_PATH=/local/repos
mkdir -p "$LOCAL_REPO_PATH" mkdir -p "$LOCAL_REPO_PATH"
LAST_UPDATE_FILE="$LOCAL_REPO_PATH/last-update" LAST_UPDATE_FILE="$LOCAL_REPO_PATH/last-update"
WORKFLOW_LOG_DIR="/artifacts/workflow-logs/${GITHUB_RUN_ID}"
NINJA_LOG_FILE="${WORKFLOW_LOG_DIR}/ninja-${BUILD_ARCH},${BUILD_DIST},${BUILD_TYPE}.log"
BUILD_LOG_FILE="${WORKFLOW_LOG_DIR}/build-${BUILD_ARCH},${BUILD_DIST},${BUILD_TYPE}.log"
mkdir -p "$WORKFLOW_LOG_DIR"
log() {
local event="$1"
# log timestamp (with microsecond resolution) + tab + event
echo "$(date +%Y-%m-%dT%H:%M:%S.%6N) $event" >> "$BUILD_LOG_FILE"
}
if [ -f "$LAST_UPDATE_FILE" ] && [ $(find "$LAST_UPDATE_FILE" -mmin -180) ]; then if [ -f "$LAST_UPDATE_FILE" ] && [ $(find "$LAST_UPDATE_FILE" -mmin -180) ]; then
echo "Skipping git repo update because it already ran in the last three hours." echo "Skipping git repo update because it already ran in the last three hours."
else else
echo "Running git repo update." echo "Running git repo update."
log "begin:repo-update"
for repo in "fmtlib/fmt" \ for repo in "fmtlib/fmt" \
"google/googletest" \ "google/googletest" \
"ericniebler/range-v3" \ "ericniebler/range-v3" \
@ -27,6 +40,8 @@ else
fi fi
done done
log "end:repo-update"
touch "$LAST_UPDATE_FILE" touch "$LAST_UPDATE_FILE"
fi fi
@ -46,8 +61,10 @@ cd "$HOME"
rm -rf dwarfs dwarfs-* rm -rf dwarfs dwarfs-*
if [[ "$BUILD_FROM_TARBALL" == "1" ]]; then if [[ "$BUILD_FROM_TARBALL" == "1" ]]; then
log "begin:tarball-extract"
tar xf "/artifacts/cache/dwarfs-source-${GITHUB_RUN_NUMBER}.tar.zst" tar xf "/artifacts/cache/dwarfs-source-${GITHUB_RUN_NUMBER}.tar.zst"
ln -s dwarfs-* dwarfs ln -s dwarfs-* dwarfs
log "end:tarball-extract"
else else
git config --global --add safe.directory /workspace git config --global --add safe.directory /workspace
ln -s /workspace dwarfs ln -s /workspace dwarfs
@ -69,9 +86,6 @@ else
CLANG_VERSION=-18 CLANG_VERSION=-18
fi fi
NINJA_LOG_DIR="/artifacts/ninja-logs/${GITHUB_RUN_ID}"
NINJA_LOG_FILE="${NINJA_LOG_DIR}/${BUILD_ARCH},${BUILD_DIST},${BUILD_TYPE}.log"
case "-$BUILD_TYPE-" in case "-$BUILD_TYPE-" in
*-ninja-*) *-ninja-*)
if [[ "$BUILD_DIST" == "alpine" ]]; then if [[ "$BUILD_DIST" == "alpine" ]]; then
@ -80,7 +94,6 @@ case "-$BUILD_TYPE-" in
BUILD_TOOL=ninja BUILD_TOOL=ninja
fi fi
CMAKE_TOOL_ARGS="-GNinja" CMAKE_TOOL_ARGS="-GNinja"
mkdir -p "$NINJA_LOG_DIR"
SAVE_BUILD_LOG="cp -a .ninja_log $NINJA_LOG_FILE" SAVE_BUILD_LOG="cp -a .ninja_log $NINJA_LOG_FILE"
;; ;;
*-make-*) *-make-*)
@ -319,10 +332,16 @@ fi
case "-$BUILD_TYPE-" in case "-$BUILD_TYPE-" in
*-full-*) *-full-*)
log "begin:cmake"
cmake ../dwarfs/ $CMAKE_ARGS -DWITH_EXAMPLE=1 cmake ../dwarfs/ $CMAKE_ARGS -DWITH_EXAMPLE=1
log "end:cmake"
log "begin:build"
time $BUILD_TOOL time $BUILD_TOOL
log "end:build"
$SAVE_BUILD_LOG $SAVE_BUILD_LOG
log "begin:test"
$RUN_TESTS $RUN_TESTS
log "end:test"
;; ;;
*-split-*) *-split-*)
@ -359,14 +378,20 @@ case "-$BUILD_TYPE-" in
;; ;;
*) *)
log "begin:cmake"
if [[ "-$BUILD_TYPE-" == *-static-* ]]; then if [[ "-$BUILD_TYPE-" == *-static-* ]]; then
cmake ../dwarfs/ $CMAKE_ARGS cmake ../dwarfs/ $CMAKE_ARGS
else else
cmake ../dwarfs/ $CMAKE_ARGS -DWITH_EXAMPLE=1 cmake ../dwarfs/ $CMAKE_ARGS -DWITH_EXAMPLE=1
fi fi
log "end:cmake"
log "begin:build"
time $BUILD_TOOL time $BUILD_TOOL
log "end:build"
$SAVE_BUILD_LOG $SAVE_BUILD_LOG
log "begin:test"
$RUN_TESTS $RUN_TESTS
log "end:test"
;; ;;
esac esac
@ -384,10 +409,16 @@ if [[ "-$BUILD_TYPE-" == *-static-* ]]; then
$BUILD_TOOL strip $BUILD_TOOL strip
fi fi
log "begin:package"
$BUILD_TOOL package $BUILD_TOOL package
log "end:package"
log "begin:upx"
$BUILD_TOOL universal_upx $BUILD_TOOL universal_upx
log "end:upx"
log "begin:copy-artifacts"
$BUILD_TOOL copy_artifacts $BUILD_TOOL copy_artifacts
log "end:copy-artifacts"
rm -rf /tmp-runner/artifacts rm -rf /tmp-runner/artifacts
mkdir -p /tmp-runner/artifacts mkdir -p /tmp-runner/artifacts
@ -396,8 +427,12 @@ if [[ "-$BUILD_TYPE-" == *-static-* ]]; then
cp dwarfs-fuse-extract-* /tmp-runner/artifacts cp dwarfs-fuse-extract-* /tmp-runner/artifacts
cp dwarfs-*-Linux*.tar.zst /tmp-runner/artifacts cp dwarfs-*-Linux*.tar.zst /tmp-runner/artifacts
elif [[ "-$BUILD_TYPE-" == *-source-* ]]; then elif [[ "-$BUILD_TYPE-" == *-source-* ]]; then
log "begin:package-source"
$BUILD_TOOL package_source $BUILD_TOOL package_source
log "end:package-source"
log "begin:copy-artifacts"
$BUILD_TOOL copy_source_artifacts $BUILD_TOOL copy_source_artifacts
log "end:copy-artifacts"
fi fi
if [[ "-$BUILD_TYPE-" != *-[at]san-* ]] && \ if [[ "-$BUILD_TYPE-" != *-[at]san-* ]] && \