diff --git a/.forgejo/workflows/auto-update.yaml b/.forgejo/workflows/auto-update.yaml index eb366f6..27eadbc 100644 --- a/.forgejo/workflows/auto-update.yaml +++ b/.forgejo/workflows/auto-update.yaml @@ -103,17 +103,29 @@ jobs: FAILED_HOSTS="" SUCCESS_HOSTS="" + declare -A BUILD_TIMES + for HOST in $(echo "$HOSTS" | jq -r '.[]'); do echo "" echo "==========================================" echo "Building: $HOST" echo "==========================================" + START_TIME=$(date +%s) + if nix build ".#nixosConfigurations.${HOST}.config.system.build.toplevel" --no-link --quiet 2>&1 | tee "build-${HOST}.txt"; then - echo "✓ Build succeeded: $HOST" + END_TIME=$(date +%s) + DURATION=$((END_TIME - START_TIME)) + DURATION_FMT=$(printf '%dm %ds' $((DURATION/60)) $((DURATION%60))) + BUILD_TIMES[$HOST]="$DURATION_FMT" + echo "✓ Build succeeded: $HOST (${DURATION_FMT})" SUCCESS_HOSTS="$SUCCESS_HOSTS $HOST" else - echo "✗ Build failed: $HOST" + END_TIME=$(date +%s) + DURATION=$((END_TIME - START_TIME)) + DURATION_FMT=$(printf '%dm %ds' $((DURATION/60)) $((DURATION%60))) + BUILD_TIMES[$HOST]="$DURATION_FMT" + echo "✗ Build failed: $HOST (${DURATION_FMT})" FAILED_HOSTS="$FAILED_HOSTS $HOST" fi done @@ -124,6 +136,11 @@ jobs: echo "==========================================" echo "Succeeded:$SUCCESS_HOSTS" echo "Failed:$FAILED_HOSTS" + echo "" + echo "Build times:" + for HOST in "${!BUILD_TIMES[@]}"; do + echo " $HOST: ${BUILD_TIMES[$HOST]}" + done # Save results for report job echo "$FAILED_HOSTS" > failed-hosts.txt