ci: fpga: Add timeout per build attempt

This commit is contained in:
Wade Fife 2025-10-10 10:15:06 -05:00 committed by Jörg Hofrichter
parent 0ca6dd7f56
commit 2a77ec9a86
5 changed files with 50 additions and 1 deletions

View File

@ -47,6 +47,7 @@ parameters:
target_name: X410
artifact_name: X410_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_UC_200:
image_core: x410_UC_200_rfnoc_image_core.yml
@ -54,6 +55,7 @@ parameters:
target_name: X410
artifact_name: X410_UC_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_X4_400:
image_core: x410_X4_400_rfnoc_image_core.yml
@ -61,6 +63,7 @@ parameters:
target_name: X410
artifact_name: X410_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_CG_400:
image_core: x410_CG_400_rfnoc_image_core.yml
@ -68,6 +71,7 @@ parameters:
target_name: X410
artifact_name: X410_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
- name: x410_reduced_targets_matrix
# X410 FPGA targets to build (if triggered by changeset, no packaging)
@ -79,6 +83,7 @@ parameters:
target_name: X410
artifact_name: X410_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_X4_400:
image_core: x410_X4_400_rfnoc_image_core.yml
@ -86,6 +91,7 @@ parameters:
target_name: X410
artifact_name: X410_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
# X440 FPGA targets to build(if triggered by changeset, packaging enabled)
- name: x440_full_targets_matrix
@ -97,6 +103,7 @@ parameters:
target_name: X440
artifact_name: X440_CG_1600
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_CG_400:
image_core: x440_CG_400_rfnoc_image_core.yml
@ -104,6 +111,7 @@ parameters:
target_name: X440
artifact_name: X440_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_1600:
image_core: x440_X4_1600_rfnoc_image_core.yml
@ -111,6 +119,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_1600
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_400:
image_core: x440_X4_400_rfnoc_image_core.yml
@ -118,6 +127,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_200:
image_core: x440_X4_200_rfnoc_image_core.yml
@ -125,6 +135,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
# X440 FPGA targets to build (if triggered by changeset, no packaging)
- name: x440_reduced_targets_matrix
@ -136,6 +147,7 @@ parameters:
target_name: X440
artifact_name: X440_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_400:
image_core: x440_X4_400_rfnoc_image_core.yml
@ -143,6 +155,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
stages:

View File

@ -110,11 +110,19 @@ jobs:
then
export BUILD_SEED=$(($(System.JobAttempt)-1))
fi
# Add timeout arg if provided, otherwise don't specify a timeout.
if [ -n "$ATTEMPT_TIMEOUT" ]; then
# Convert from minutes to hours
export TIMEOUT_ARG="--timeout $(echo "scale=2; $ATTEMPT_TIMEOUT / 60.0" | bc)"
else
export TIMEOUT_ARG=""
fi
python3 ../../tools/utils/repeat_fpga_build.py \
--image-core $(image_core) $TARGET_ARG $BITFILE_NAME_ARG \
--image-core-name $IMAGE_CORE_NAME \
--vivado-path $(dirname $XILINX_VIVADO) \
--num $(max_attempts) --seed $BUILD_SEED --persistent
--num $(max_attempts) --seed $BUILD_SEED --persistent \
$TIMEOUT_ARG
pip3 uninstall -y uhd
workingDirectory: ${{ parameters.top_dir }}
displayName: 'Build Target'

View File

@ -97,30 +97,35 @@ parameters:
image_core_name: usrp_x410_fpga_X4_400
artifact_name: X410_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_UC_200:
image_core: x410_UC_200_rfnoc_image_core.yml
image_core_name: usrp_x410_fpga_UC_200
artifact_name: X410_UC_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_X4_200:
image_core: x410_X4_200_rfnoc_image_core.yml
image_core_name: usrp_x410_fpga_X4_200
artifact_name: X410_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_CG_400:
image_core: x410_CG_400_rfnoc_image_core.yml
image_core_name: usrp_x410_fpga_CG_400
artifact_name: X410_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_FFT_BLOCK_TEST:
image_core: ../../../../host/tests/rfnoc_block_tests_on_target/x410_fft_block_test.yml
image_core_name: usrp_x410_fpga_fft_block_test
artifact_name: X410_FFT_BLOCK_TEST
timeout: 720
attempt_timeout: 360
max_attempts: 2
# Requested X440 targets
- name: x440_targets_matrix
@ -131,30 +136,35 @@ parameters:
image_core_name: usrp_x440_fpga_CG_1600
artifact_name: X440_CG_1600
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_CG_400:
image_core: x440_CG_400_rfnoc_image_core.yml
image_core_name: usrp_x440_fpga_CG_400
artifact_name: X440_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_1600:
image_core: x440_X4_1600_rfnoc_image_core.yml
image_core_name: usrp_x440_fpga_X4_1600
artifact_name: X440_X4_1600
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_400:
image_core: x440_X4_400_rfnoc_image_core.yml
image_core_name: usrp_x440_fpga_X4_400
artifact_name: X440_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_200:
image_core: x440_X4_200_rfnoc_image_core.yml
image_core_name: usrp_x440_fpga_X4_200
artifact_name: X440_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
variables:

View File

@ -138,6 +138,7 @@ parameters:
target_name: X410
artifact_name: X410_UC_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_X4_200:
image_core: x410_X4_200_rfnoc_image_core.yml
@ -145,6 +146,7 @@ parameters:
target_name: X410
artifact_name: X410_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_CG_400:
image_core: x410_CG_400_rfnoc_image_core.yml
@ -152,6 +154,7 @@ parameters:
target_name: X410
artifact_name: X410_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_FFT_BLOCK_TEST:
image_core: ../../../../host/tests/rfnoc_block_tests_on_target/x410_fft_block_test.yml
@ -159,6 +162,7 @@ parameters:
target_name: X410
artifact_name: X410_FFT_BLOCK_TEST
timeout: 720
attempt_timeout: 360
max_attempts: 2
- name: x440_targets_matrix
type: object
@ -170,6 +174,7 @@ parameters:
target_name: X440
artifact_name: X440_CG_1600
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_CG_400:
image_core: x440_CG_400_rfnoc_image_core.yml
@ -177,6 +182,7 @@ parameters:
target_name: X440
artifact_name: X440_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_1600:
image_core: x440_X4_1600_rfnoc_image_core.yml
@ -184,6 +190,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_1600
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_400:
image_core: x440_X4_400_rfnoc_image_core.yml
@ -191,6 +198,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_200:
image_core: x440_X4_200_rfnoc_image_core.yml
@ -198,6 +206,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2

View File

@ -75,6 +75,7 @@ parameters:
target_name: X410
artifact_name: X410_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_UC_200:
image_core: x410_UC_200_rfnoc_image_core.yml
@ -82,6 +83,7 @@ parameters:
target_name: X410
artifact_name: X410_UC_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_X4_400:
image_core: x410_X4_400_rfnoc_image_core.yml
@ -89,6 +91,7 @@ parameters:
target_name: X410
artifact_name: X410_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X410_CG_400:
image_core: x410_CG_400_rfnoc_image_core.yml
@ -96,6 +99,7 @@ parameters:
target_name: X410
artifact_name: X410_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
- name: x440_targets_matrix
displayName: X440 Targets
@ -107,6 +111,7 @@ parameters:
target_name: X440
artifact_name: X440_CG_1600
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_CG_400:
image_core: x440_CG_400_rfnoc_image_core.yml
@ -114,6 +119,7 @@ parameters:
target_name: X440
artifact_name: X440_CG_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_1600:
image_core: x440_X4_1600_rfnoc_image_core.yml
@ -121,6 +127,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_1600
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_400:
image_core: x440_X4_400_rfnoc_image_core.yml
@ -128,6 +135,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_400
timeout: 720
attempt_timeout: 360
max_attempts: 2
X440_X4_200:
image_core: x440_X4_200_rfnoc_image_core.yml
@ -135,6 +143,7 @@ parameters:
target_name: X440
artifact_name: X440_X4_200
timeout: 720
attempt_timeout: 360
max_attempts: 2
trigger: none