diff options
Diffstat (limited to 'fpga/.ci/x4xx-pr-check.yml')
-rw-r--r-- | fpga/.ci/x4xx-pr-check.yml | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/fpga/.ci/x4xx-pr-check.yml b/fpga/.ci/x4xx-pr-check.yml new file mode 100644 index 000000000..3de9f674d --- /dev/null +++ b/fpga/.ci/x4xx-pr-check.yml @@ -0,0 +1,114 @@ +# +# Copyright 2021 Ettus Research, a National Instruments Brand +# +# SPDX-License-Identifier: LGPL-3.0-or-later +# +# Description: +# +# This pipeline is used to test building the FPGA and CPLD for each pull +# request. +# +# See https://aka.ms/yaml for pipeline YAML documentation. +# + +trigger: +- none + +# Filter for target branches and paths on PRs. See: +# https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops&tabs=yaml#pr-triggers +pr: + branches: + include: + - master + paths: + include: + - fpga/usrp3/lib + - fpga/usrp3/tools + - fpga/usrp3/top/x400 + - fpga/.ci + +jobs: +# ------------------------------------------------------------------- +# Build XG FPGA (100 MHz) +# ------------------------------------------------------------------- +- template: templates/fpga_build.yml + parameters: + target: X410_XG_100 + debug: true # to be able to debug any failed attempts + clean: false # for speedup of PR testing + timeout: 360 + +# ------------------------------------------------------------------- +# Build X4 FPGA (200 MHz) +# ------------------------------------------------------------------- +- template: templates/fpga_build.yml + parameters: + target: X410_X4_200 + debug: true # to be able to debug any failed attempts + clean: false # for speedup of PR testing + timeout: 360 + +# ------------------------------------------------------------------- +# Build C1 FPGA (400 MHz) +# ------------------------------------------------------------------- +- template: templates/fpga_build.yml + parameters: + target: X410_C1_400 + debug: true # to be able to debug any failed attempts + clean: false # for speedup of PR testing + timeout: 360 + +# ------------------------------------------------------------------- +# Make CPLD +# ------------------------------------------------------------------- +#- template: templates/mb_cpld_build.yml +# parameters: +# debug: true # to be able to debug any failed attempts + +# ------------------------------------------------------------------- +# Make ZBX CPLD +# ------------------------------------------------------------------- +#- template: templates/zbx_cpld_build.yml +# parameters: +# debug: true # to be able to debug any failed attempts + +# ------------------------------------------------------------------- +# Build IP +# ------------------------------------------------------------------- +- job: IP + displayName: 'Build IP' + pool: + name: de-dre-lab + demands: + - ettus_fpga_build + - vivado2019.1 + timeoutInMinutes: 120 + steps: + - checkout: self + clean: false + + - bash: | + python3 cleanup_incomplete_ip_builds.py -d $BUILD_SOURCESDIRECTORY/fpga/usrp3/top/x400 + workingDirectory: fpga/.ci/scripts/ + displayName: 'Incomplete IP Cleanup' + + # Delete everything except for the build-ip directory, which is expected to + # remain for speed-up. + - bash: | + git clean -xdff -e build-ip + displayName: 'git clean' + + - bash: | + source setupenv.sh + make X410_IP + workingDirectory: fpga/usrp3/top/x400 + + - publish: fpga/usrp3/top/x400/build-ip + artifact: 'IP ($(System.JobAttempt))' + condition: failed() + + - publish: fpga/usrp3/top/x400/build-ip + artifact: 'IP' + condition: succeeded() + + - template: templates/check_clean_repo_steps.yml |