mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
1131 lines
42 KiB
YAML
1131 lines
42 KiB
YAML
#
|
|
# Copyright 2021 Ettus Research, a National Instruments Brand
|
|
#
|
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
#
|
|
|
|
parameters:
|
|
- name: add_tests
|
|
type: string
|
|
default: "none"
|
|
- name: remove_tests
|
|
type: string
|
|
default: "none"
|
|
- name: skip_rule_checking
|
|
type: boolean
|
|
default: False
|
|
- name: custom_boost_version
|
|
type: boolean
|
|
default: false
|
|
- name: custom_boost_version_url
|
|
type: string
|
|
default: 'https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2'
|
|
- name: release_binaries
|
|
type: boolean
|
|
default: false
|
|
- name: testLength
|
|
type: string
|
|
default: 'smoke'
|
|
- name: selected_streaming_tests
|
|
type: string
|
|
displayName: Streaming Tests Multi-Select (comma-separated)
|
|
default: 'B206,B210,B310,X310_XG,X410_CG_400,X410_UC_200,X440_CG_400,X440_CG_1600'
|
|
- name: create_sbom
|
|
type: boolean
|
|
displayName: Create SBOMs
|
|
default: true
|
|
- name: build_sdk
|
|
type: boolean
|
|
default: false
|
|
- name: cache_sstate
|
|
type: boolean
|
|
default: true
|
|
- name: build_e310_sg1
|
|
type: boolean
|
|
default: true
|
|
- name: build_e310_sg3
|
|
type: boolean
|
|
default: true
|
|
- name: build_e320
|
|
type: boolean
|
|
default: true
|
|
- name: build_n3xx
|
|
type: boolean
|
|
default: true
|
|
- name: build_x4xx
|
|
type: boolean
|
|
default: true
|
|
- name: ext_fpga
|
|
type: boolean
|
|
displayName: Use pipeline FPGA build
|
|
default: true
|
|
- name: cmake_args
|
|
type: string
|
|
default: " "
|
|
- name: fpga_imgs_source
|
|
type: string
|
|
displayName: FPGA Images Source
|
|
default: 'Mono Pipeline'
|
|
values:
|
|
- 'files.ettus.com (Public)'
|
|
- 'Internal Repo'
|
|
- 'Mono Pipeline'
|
|
- 'Mono Pipeline PR'
|
|
- 'FPGA Pipeline'
|
|
### FPGA parameters
|
|
## Optional parameters
|
|
# Run testbenches
|
|
- name: run_testbenches
|
|
type: boolean
|
|
default: true
|
|
# Option to ignore cached artifacts (if available) and perform
|
|
# a clean IP build.
|
|
- name: clean_ip_build
|
|
type: boolean
|
|
default: false
|
|
# Number of parallel jobs to use for IP build
|
|
- name: num_ip_jobs
|
|
type: number
|
|
default: 5
|
|
# Option to publish intermediate files
|
|
- name: publish_int_files
|
|
type: boolean
|
|
default: false
|
|
# Package and publish images
|
|
- name: package_and_publish_images
|
|
type: boolean
|
|
default: true
|
|
# Package access in the SDR server ('Internal' or 'Public')
|
|
- name: package_access
|
|
type: string
|
|
default: 'Internal'
|
|
# GRPC version used in the macos build
|
|
# make sure to align the definition with the grpc
|
|
# respository resource below
|
|
- name: grpc_version
|
|
type: string
|
|
default: "1.51.1"
|
|
# Requested X410 targets (if build_x410 is true)
|
|
- name: x410_targets_matrix
|
|
type: object
|
|
default:
|
|
X410_X4_400:
|
|
image_core: x410_X4_400_rfnoc_image_core.yml
|
|
image_core_name: usrp_x410_fpga_X4_400
|
|
target_name: X410
|
|
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
|
|
target_name: X410
|
|
artifact_name: X410_UC_200
|
|
timeout: 720
|
|
attempt_timeout: 360
|
|
max_attempts: 2
|
|
X410_X4_100:
|
|
image_core: x410_X4_100_rfnoc_image_core.yml
|
|
image_core_name: usrp_x410_fpga_X4_100
|
|
target_name: X410
|
|
artifact_name: X410_X4_100
|
|
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
|
|
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
|
|
image_core_name: usrp_x410_fpga_CG_400
|
|
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
|
|
image_core_name: usrp_x410_fpga_fft_block_test
|
|
target_name: X410
|
|
artifact_name: X410_FFT_BLOCK_TEST
|
|
timeout: 720
|
|
attempt_timeout: 360
|
|
max_attempts: 2
|
|
# Requested X420 targets
|
|
- name: x420_targets_matrix
|
|
type: object
|
|
displayName: X420 Targets
|
|
default:
|
|
X420_CG_1000:
|
|
image_core: x420_CG_1000_rfnoc_image_core.yml
|
|
image_core_name: usrp_x420_fpga_CG_1000
|
|
target_name: X420
|
|
artifact_name: X420_CG_1000
|
|
timeout: 720
|
|
max_attempts: 2
|
|
X420_X4_1000:
|
|
image_core: x420_X4_1000_rfnoc_image_core.yml
|
|
image_core_name: usrp_x420_fpga_X4_1000
|
|
target_name: X420
|
|
artifact_name: X420_X4_1000
|
|
timeout: 720
|
|
max_attempts: 2
|
|
X420_CG_400:
|
|
image_core: x420_CG_400_rfnoc_image_core.yml
|
|
image_core_name: usrp_x420_fpga_CG_400
|
|
target_name: X420
|
|
artifact_name: X420_CG_400
|
|
timeout: 720
|
|
max_attempts: 2
|
|
X420_X4_400:
|
|
image_core: x420_X4_400_rfnoc_image_core.yml
|
|
image_core_name: usrp_x420_fpga_X4_400
|
|
target_name: X420
|
|
artifact_name: X420_X4_400
|
|
timeout: 720
|
|
max_attempts: 2
|
|
X420_X4_200:
|
|
image_core: x420_X4_200_rfnoc_image_core.yml
|
|
image_core_name: usrp_x420_fpga_X4_200
|
|
target_name: X420
|
|
artifact_name: X420_X4_200
|
|
timeout: 720
|
|
max_attempts: 2
|
|
# Requested X440 targets
|
|
- name: x440_targets_matrix
|
|
type: object
|
|
default:
|
|
X440_CG_1600:
|
|
image_core: x440_CG_1600_rfnoc_image_core.yml
|
|
image_core_name: usrp_x440_fpga_CG_1600
|
|
target_name: X440
|
|
artifact_name: X440_CG_1600
|
|
timeout: 720
|
|
attempt_timeout: 360
|
|
max_attempts: 2
|
|
X440_CG_800:
|
|
image_core: x440_CG_800_rfnoc_image_core.yml
|
|
image_core_name: usrp_x440_fpga_CG_800
|
|
target_name: X440
|
|
artifact_name: X440_CG_800
|
|
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
|
|
target_name: X440
|
|
artifact_name: X440_CG_400
|
|
timeout: 1080
|
|
attempt_timeout: 540 # successfull runs can take longer than default 6h
|
|
max_attempts: 2
|
|
X440_X4_1600:
|
|
image_core: x440_X4_1600_rfnoc_image_core.yml
|
|
image_core_name: usrp_x440_fpga_X4_1600
|
|
target_name: X440
|
|
artifact_name: X440_X4_1600
|
|
timeout: 720
|
|
attempt_timeout: 360
|
|
max_attempts: 2
|
|
X440_X4_800:
|
|
image_core: x440_X4_800_rfnoc_image_core.yml
|
|
image_core_name: usrp_x440_fpga_X4_800
|
|
target_name: X440
|
|
artifact_name: X440_X4_800
|
|
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
|
|
target_name: X440
|
|
artifact_name: X440_X4_400
|
|
timeout: 1080
|
|
attempt_timeout: 540 # successfull runs can take longer than default 6h
|
|
max_attempts: 2
|
|
X440_X4_200:
|
|
image_core: x440_X4_200_rfnoc_image_core.yml
|
|
image_core_name: usrp_x440_fpga_X4_200
|
|
target_name: X440
|
|
artifact_name: X440_X4_200
|
|
timeout: 720
|
|
attempt_timeout: 360
|
|
max_attempts: 2
|
|
# Next parameters are used to control conditional execution of embedded system image build stages.
|
|
# They are not parameters that can be set by the user,
|
|
# but rather they are computed based on the output of the analyze_changeset stage.
|
|
- name: embedded_stage_condition_e3xx
|
|
type: string
|
|
default: >
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.linux'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'mpm.build'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.e3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.e310'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.e320'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.e3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.e310'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.e320'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.e3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.e310'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.e320')
|
|
)
|
|
- name: embedded_stage_condition_n3xx
|
|
type: string
|
|
default: >
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.linux'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'mpm.build'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.n3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.n310'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.n320'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.n3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.n310'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.n320'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.n3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.n310'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.n320')
|
|
)
|
|
- name: embedded_stage_condition_x4xx
|
|
type: string
|
|
default: >
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.linux'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'mpm.build'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.x4xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.x410'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.x420'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming.x440'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x4xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x410'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x420'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x440'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x4xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x410'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x420'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x440')
|
|
)
|
|
|
|
variables:
|
|
- template: ../uhd-pipeline-vars.yml
|
|
|
|
resources:
|
|
pipelines:
|
|
- pipeline: uhd_build_docker_container
|
|
source: 'uhddev Build Docker Containers'
|
|
branch: master
|
|
- pipeline: nib310rio_kernel_packages
|
|
source: 'usrp-pcie-driver pipeline'
|
|
branch: main
|
|
- pipeline: usrp-kas-pipeline
|
|
source: 'usrp-kas'
|
|
branch: scarthgap
|
|
- pipeline: uhd_mono_pipeline
|
|
source: 'uhddev mono pipeline'
|
|
branch: master
|
|
- pipeline: uhd_mono_pipeline_pr
|
|
source: 'uhddev mono pipeline PR'
|
|
branch: master
|
|
# Keep this for now, but it should be removed once the mono pipeline is
|
|
# fully populated.
|
|
- pipeline: uhd_fpga_pipeline
|
|
source: 'uhddev fpga pipeline'
|
|
branch: master
|
|
repositories:
|
|
- repository: meta-ettus
|
|
type: github
|
|
name: EttusResearch/meta-ettus-dev
|
|
endpoint: EttusResearch
|
|
ref: scarthgap
|
|
- repository: gnuradio
|
|
type: github
|
|
name: gnuradio/gnuradio
|
|
endpoint: EttusResearch
|
|
ref: maint-3.10
|
|
- repository: volk
|
|
type: github
|
|
name: gnuradio/volk
|
|
endpoint: EttusResearch
|
|
# 3.2.0 is the latest release as of Feb. 2025
|
|
ref: refs/tags/v3.2.0
|
|
- repository: gr-ettus
|
|
type: github
|
|
name: EttusResearch/gr-ettusdev
|
|
endpoint: EttusResearch
|
|
ref: master
|
|
- repository: ettus-rts
|
|
type: github
|
|
endpoint: EttusResearch
|
|
name: EttusResearch/ettus-rts
|
|
ref: master
|
|
- repository: hwtools
|
|
type: git
|
|
ref: main
|
|
name: DevCentral/hwtools
|
|
- repository: labview-usrp-examples
|
|
type: github
|
|
endpoint: EttusResearch
|
|
name: ni/labview-usrp-examples
|
|
ref: main
|
|
- repository: rfnoc-oot-blocks
|
|
type: github
|
|
endpoint: EttusResearch
|
|
name: EttusResearch/rfnoc-oot-blocks-dev
|
|
ref: main
|
|
- repository: usrp4-hw
|
|
type: git
|
|
ref: master
|
|
name: DevCentral/usrp4-hw
|
|
# grpc repository is only used for macos build currently.
|
|
# Make sure to align the tag with the parameter grpc_version above
|
|
- repository: grpc
|
|
type: github
|
|
endpoint: EttusResearch
|
|
name: grpc/grpc
|
|
ref: refs/tags/v1.51.1
|
|
|
|
stages:
|
|
###############################################################################
|
|
# Changeset Analyzer
|
|
# This stage will analyze code that is being tested, and generate variables
|
|
# that can be used to control conditional execution of future stages. Any
|
|
# stage that shall run conditionally must therefore depend on this stage.
|
|
###############################################################################
|
|
- stage: analyze_changeset
|
|
displayName: Analyze Changeset
|
|
dependsOn: []
|
|
jobs:
|
|
- template: job-analyze-changeset.yml
|
|
parameters:
|
|
${{ if eq(parameters.fpga_imgs_source, 'Mono Pipeline PR') }}:
|
|
reference_pipeline_name: uhd_mono_pipeline_pr
|
|
${{ elseif eq(parameters.fpga_imgs_source, 'FPGA Pipeline') }}:
|
|
reference_pipeline_name: uhd_fpga_pipeline
|
|
${{ else }}:
|
|
reference_pipeline_name: uhd_mono_pipeline
|
|
add_tests: ${{ parameters.add_tests }}
|
|
remove_tests: ${{ parameters.remove_tests }}
|
|
skip_rule_checking: ${{ parameters.skip_rule_checking }}
|
|
|
|
###############################################################################
|
|
# SW Building & Testing Stages. No FPGA, no hardware involved.
|
|
###############################################################################
|
|
- stage: build_uhd_stage_linux
|
|
displayName: Build UHD Linux
|
|
dependsOn: analyze_changeset
|
|
# This will make $(UhdTestList) available to jobs/steps/tasks, but not for the
|
|
# condition.
|
|
variables:
|
|
UhdTestList: $[stageDependencies.analyze_changeset.analyze.outputs['gen_testlist.UhdTestList']]
|
|
# This stage is executed if any of these are true:
|
|
# - build_linux is set to Force-yes
|
|
# - build_linux is set to auto, and the UhdTestList contains UHD Linux builds
|
|
condition: >
|
|
and(succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.linux'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.all')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-uhd-build-src.yml
|
|
parameters:
|
|
toolset: make
|
|
cmake_args: ${{ parameters.cmake_args }}
|
|
- template: job-uhd-build-src.yml
|
|
parameters:
|
|
toolset: make_trace
|
|
cmake_args: ${{ parameters.cmake_args }}
|
|
- template: job-uhd-build-src.yml
|
|
parameters:
|
|
toolset: ninja
|
|
cmake_args: ${{ parameters.cmake_args }}
|
|
- ${{ if parameters.custom_boost_version }}:
|
|
- template: job-uhd-build-src.yml
|
|
parameters:
|
|
toolset: make_custom_boost_version
|
|
custom_boost_version_url: ${{ parameters.custom_boost_version_url }}
|
|
cmake_args: ${{ parameters.cmake_args }}
|
|
|
|
- stage: build_rfnoc_modtool_stage_linux
|
|
displayName: Build and Test RFNoC Modtool
|
|
dependsOn:
|
|
- build_uhd_stage_linux
|
|
- analyze_changeset
|
|
variables:
|
|
UhdTestList: $[stageDependencies.analyze_changeset.analyze.outputs['gen_testlist.UhdTestList']]
|
|
condition: >
|
|
and(succeeded(),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.rfnoc_modtool.')
|
|
)
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-rfnoc_modtool-test-sw.yml
|
|
- template: job-rfnoc_modtool-test-testbenches.yml
|
|
|
|
- stage: build_uhd_stage_mac
|
|
displayName: Build UHD macOS
|
|
dependsOn: analyze_changeset
|
|
condition: >
|
|
and(succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.mac'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.all')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-uhd-build-src.yml
|
|
parameters:
|
|
toolset: make_homebrew_macos
|
|
custom_boost_version: ${{ parameters.custom_boost_version }}
|
|
custom_boost_version_url: ${{ parameters.custom_boost_version_url }}
|
|
grpc_version: ${{ parameters.grpc_version }}
|
|
|
|
- template: stage-build-uhd-embedded-system-image.yml
|
|
parameters:
|
|
stage_name: build_uhd_embedded_system_images_e310_sg1
|
|
display_name: "[e310_sg1] Build UHD Embedded System Images"
|
|
machine_name: e310_sg1
|
|
stage_condition: ${{ parameters.embedded_stage_condition_e3xx }}
|
|
enabled: ${{ parameters.build_e310_sg1 }}
|
|
create_sbom: ${{ parameters.create_sbom }}
|
|
build_sdk: ${{ parameters.build_sdk }}
|
|
cache_sstate: ${{ parameters.cache_sstate }}
|
|
ext_fpga: ${{ parameters.ext_fpga }}
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
|
|
- template: stage-build-uhd-embedded-system-image.yml
|
|
parameters:
|
|
stage_name: build_uhd_embedded_system_images_e310_sg3
|
|
display_name: "[e310_sg3] Build UHD Embedded System Images"
|
|
machine_name: e310_sg3
|
|
stage_condition: ${{ parameters.embedded_stage_condition_e3xx }}
|
|
enabled: ${{ parameters.build_e310_sg3 }}
|
|
create_sbom: ${{ parameters.create_sbom }}
|
|
build_sdk: ${{ parameters.build_sdk }}
|
|
cache_sstate: ${{ parameters.cache_sstate }}
|
|
ext_fpga: ${{ parameters.ext_fpga }}
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
|
|
- template: stage-build-uhd-embedded-system-image.yml
|
|
parameters:
|
|
stage_name: build_uhd_embedded_system_images_e320
|
|
display_name: "[e320] Build UHD Embedded System Images"
|
|
machine_name: e320
|
|
stage_condition: ${{ parameters.embedded_stage_condition_e3xx }}
|
|
enabled: ${{ parameters.build_e320 }}
|
|
create_sbom: ${{ parameters.create_sbom }}
|
|
build_sdk: ${{ parameters.build_sdk }}
|
|
cache_sstate: ${{ parameters.cache_sstate }}
|
|
ext_fpga: ${{ parameters.ext_fpga }}
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
|
|
- template: stage-build-uhd-embedded-system-image.yml
|
|
parameters:
|
|
stage_name: build_uhd_embedded_system_images_n3xx
|
|
display_name: "[n3xx] Build UHD Embedded System Images"
|
|
machine_name: n3xx
|
|
stage_condition: ${{ parameters.embedded_stage_condition_n3xx }}
|
|
enabled: ${{ parameters.build_n3xx }}
|
|
create_sbom: ${{ parameters.create_sbom }}
|
|
build_sdk: ${{ parameters.build_sdk }}
|
|
cache_sstate: ${{ parameters.cache_sstate }}
|
|
ext_fpga: ${{ parameters.ext_fpga }}
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
|
|
- template: stage-build-uhd-embedded-system-image.yml
|
|
parameters:
|
|
stage_name: build_uhd_embedded_system_images_x4xx
|
|
display_name: "[x4xx] Build UHD Embedded System Images"
|
|
machine_name: x4xx
|
|
stage_condition: ${{ parameters.embedded_stage_condition_x4xx }}
|
|
enabled: ${{ parameters.build_x4xx }}
|
|
create_sbom: ${{ parameters.create_sbom }}
|
|
build_sdk: ${{ parameters.build_sdk }}
|
|
cache_sstate: ${{ parameters.cache_sstate }}
|
|
ext_fpga: ${{ parameters.ext_fpga }}
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
|
|
- stage: package_uhd_src
|
|
displayName: Package UHD Source
|
|
dependsOn: analyze_changeset
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-uhd-package-src.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
|
|
release_binaries: ${{ parameters.release_binaries }}
|
|
|
|
- stage: build_uhd_manual
|
|
displayName: Build UHD Manual (the ReadTheDocs way)
|
|
dependsOn: analyze_changeset
|
|
# This stage is executed if any of these are true:
|
|
# - uhd.build* is set to Force-yes or auto
|
|
# - uhd.docs is set to Force-yes or auto
|
|
# - fpga.usrp3* is set to Force-yes or auto
|
|
condition: >
|
|
and(succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.docs'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'fpga.usrp3')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-uhd-build-manual.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
|
|
release_binaries: ${{ parameters.release_binaries }}
|
|
|
|
- stage: build_gnuradio_stage_linux
|
|
displayName: Build gnuradio Linux
|
|
dependsOn:
|
|
- build_uhd_stage_linux
|
|
- analyze_changeset
|
|
# Anytime we build UHD, we also rebuild GNU Radio to see if we broke compat.
|
|
condition: >
|
|
and(succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.linux'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.all')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-gnuradio-grettus-build-src.yml
|
|
parameters:
|
|
toolset: make
|
|
|
|
- stage: build_uhd_installer_stage_ubuntu
|
|
displayName: Build UHD Installers Ubuntu
|
|
dependsOn: build_uhd_stage_linux
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-uhd-build-installer.yml
|
|
parameters:
|
|
toolset: ubuntu_deb
|
|
installer: deb
|
|
cmake_args: ${{ parameters.cmake_args }}
|
|
releaseBinaries: ${{ parameters.release_binaries }}
|
|
create_sbom: ${{ parameters.create_sbom }}
|
|
|
|
- stage: build_uhd_installer_stage_fedora
|
|
displayName: Build UHD Installers Fedora
|
|
dependsOn: build_uhd_stage_linux
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-uhd-build-installer.yml
|
|
parameters:
|
|
toolset: fedora_rpm
|
|
installer: rpm
|
|
cmake_args: ${{ parameters.cmake_args }}
|
|
releaseBinaries: ${{ parameters.release_binaries }}
|
|
create_sbom: ${{ parameters.create_sbom }}
|
|
|
|
- stage: build_uhd_installer_stage_win
|
|
displayName: Build UHD Installers Windows
|
|
dependsOn: analyze_changeset
|
|
condition: >
|
|
and(succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.windows'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'uhd.build.all')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-get-latest-uhd-docker.yml
|
|
- template: job-uhd-build-installer.yml
|
|
parameters:
|
|
toolset: msbuild
|
|
installer: nsis
|
|
cmake_args: ${{ parameters.cmake_args }}
|
|
releaseBinaries: ${{ parameters.release_binaries }}
|
|
${{ if contains(parameters.fpga_imgs_source, 'files.ettus.com') }}:
|
|
fpga_imgs_source: 'files.ettus.com'
|
|
${{ else }}:
|
|
fpga_imgs_source: 'Internal'
|
|
create_sbom: ${{ parameters.create_sbom }}
|
|
|
|
- template: .ci/templates/stages-nisbom-uploads.yml@ettus-rts
|
|
parameters:
|
|
artifactSourceMode: current
|
|
uhdArtifactSource: uhd_mono_pipeline
|
|
releaseBinaries: false
|
|
dependsOnGroups:
|
|
fedoraInstaller:
|
|
- build_uhd_installer_stage_fedora
|
|
ubuntuInstaller:
|
|
- build_uhd_installer_stage_ubuntu
|
|
winInstaller:
|
|
- build_uhd_installer_stage_win
|
|
embeddedImages:
|
|
- build_uhd_embedded_system_images_e310_sg1
|
|
- build_uhd_embedded_system_images_e310_sg3
|
|
- build_uhd_embedded_system_images_e320
|
|
- build_uhd_embedded_system_images_n3xx
|
|
- build_uhd_embedded_system_images_x4xx
|
|
|
|
###############################################################################
|
|
# FPGA Stages. Here, we build bitfiles (or at least download the right artifacts)
|
|
###############################################################################
|
|
|
|
### START: Testbenches stage
|
|
|
|
- stage: run_testbenches_stage
|
|
displayName: Run Testbenches
|
|
dependsOn: analyze_changeset
|
|
condition: >
|
|
and(succeeded(),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'fpga.usrp3.testbenches')
|
|
)
|
|
jobs:
|
|
- template: ../fpga/templates/job-run-testbenches.yml
|
|
parameters:
|
|
simulator: qsim
|
|
- template: ../fpga/templates/job-run-testbenches.yml
|
|
parameters:
|
|
simulator: xsim
|
|
|
|
### END: Testbenches stage
|
|
|
|
### START: CPLD Build Stage
|
|
|
|
- stage: build_cpld_stage
|
|
displayName: x4xx CPLD Build Stage
|
|
dependsOn: analyze_changeset
|
|
variables:
|
|
- group: sdr-pipeline-vars
|
|
condition: >
|
|
and(succeeded(),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'fpga.usrp3.cpld.x4xx')
|
|
)
|
|
jobs:
|
|
- template: ../fpga/templates/job-build-cpld.yml
|
|
parameters:
|
|
publish_int_files: true
|
|
cpldBuilds:
|
|
- displayName: 'HBX CPLD Build'
|
|
workingDirectory: './top/x400/dboards/hbx/cpld'
|
|
artifactName: 'CPLD_HBX'
|
|
ref: $(hbx-branch-name)
|
|
- displayName: 'HBX CPLD Master Merge'
|
|
workingDirectory: './top/x400/dboards/hbx/cpld'
|
|
artifactName: 'CPLD_HBX (Master Merge)'
|
|
includeAdditionalSources: true
|
|
- displayName: 'MB CPLD Build'
|
|
workingDirectory: './top/x400/cpld'
|
|
artifactName: 'CPLD_MB'
|
|
- displayName: 'ZBX CPLD Build'
|
|
workingDirectory: './top/x400/dboards/zbx/cpld'
|
|
artifactName: 'CPLD_ZBX'
|
|
|
|
- stage: build_x3xx_cpld_stage
|
|
displayName: x3xx CPLD Build Stage
|
|
dependsOn: analyze_changeset
|
|
condition: >
|
|
and(succeeded(),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'fpga.usrp3.cpld.x3xx')
|
|
)
|
|
jobs:
|
|
- template: ../fpga/templates/job-build-cpld.yml
|
|
parameters:
|
|
publish_int_files: false
|
|
cpldBuilds:
|
|
- displayName: 'OBX CPLD Build'
|
|
workingDirectory: './top/x300/dboards/obx/cpld'
|
|
artifactName: 'CPLD_OBX'
|
|
|
|
### END: CPLD Build Stage
|
|
|
|
### START: Regmap stage
|
|
|
|
- stage: regmap
|
|
dependsOn: analyze_changeset
|
|
condition: >
|
|
and(succeeded(),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'fpga.usrp3.regmaps')
|
|
)
|
|
displayName: 'Check Regmaps'
|
|
jobs:
|
|
- template: ../fpga/templates/job-regmap.yml
|
|
|
|
### END: Regmap stage
|
|
|
|
- template: ../fpga/templates/job-build-fpga-all.yml
|
|
parameters:
|
|
clean_ip_build: ${{ parameters.clean_ip_build }}
|
|
publish_int_files: ${{ parameters.publish_int_files }}
|
|
package_and_publish_images: ${{ parameters.package_and_publish_images }}
|
|
package_access: ${{ parameters.package_access }}
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
x410_targets_matrix: ${{ parameters.x410_targets_matrix }}
|
|
x420_targets_matrix: ${{ parameters.x420_targets_matrix }}
|
|
x440_targets_matrix: ${{ parameters.x440_targets_matrix }}
|
|
additional_setup_steps:
|
|
- checkout: rfnoc-oot-blocks
|
|
clean: true
|
|
rfnoc_include_dir: $(Build.SourcesDirectory)/rfnoc-oot-blocks-dev/rfnoc
|
|
|
|
- stage: usrp4_tests
|
|
displayName: Simulate + Build usrp4-hw
|
|
dependsOn: analyze_changeset
|
|
condition: >
|
|
and(succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'fpga.usrp3.x4xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'fpga.usrp3.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'fpga.usrp4-hw')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: pipelines/templates/build_and_simulate.yml@usrp4-hw
|
|
parameters:
|
|
runSimulation: true
|
|
publish: "false"
|
|
requestCiPublishPermission: false
|
|
|
|
###############################################################################
|
|
# Hardware Test Stages. These require having valid software and FPGA images.
|
|
###############################################################################
|
|
- stage: devtest_uhd_x3xx_b2xx_stage
|
|
displayName: Dev Test UHD x3xx b2xx
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- provide_x300_fpga_images_stage
|
|
- provide_x310_fpga_images_stage
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.b2'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x3')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-uhd-devtest-rhombus.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
testDevices: 'x3xx,b2xx'
|
|
- template: job-uhd-devtest-s175.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
testDevices: 'x3xx,b2xx'
|
|
|
|
- stage: devtest_uhd_n3xx_e320_stage
|
|
displayName: Dev Test UHD n3xx e320
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- build_uhd_embedded_system_images_n3xx
|
|
- build_uhd_embedded_system_images_e320
|
|
- provide_n300_fpga_images_stage
|
|
- provide_n310_fpga_images_stage
|
|
- provide_n320_fpga_images_stage
|
|
- provide_e320_fpga_images_stage
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.n3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.e320')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-uhd-devtest-rhombus.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
testDevices: 'n3xx,e320'
|
|
|
|
- stage: test_uhd_x4xx_sdrtest0_stage
|
|
displayName: RF Test UHD x4xx sdr-test0
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- build_uhd_embedded_system_images_x4xx
|
|
- build_gnuradio_stage_linux
|
|
- provide_x410_fpga_images_stage
|
|
- provide_x440_fpga_images_stage
|
|
# This will make $(UhdTestList) available to jobs/steps/tasks, but not for the
|
|
# condition.
|
|
variables:
|
|
UhdTestList: $[stageDependencies.analyze_changeset.analyze.outputs['gen_testlist.UhdTestList']]
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x4xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x410'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x440'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x410'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x440')
|
|
))
|
|
jobs:
|
|
- template: tests/job-uhd-x410-hardware-tests-sdr-test0.yml
|
|
parameters:
|
|
${{ if contains(parameters.fpga_imgs_source, 'Pipeline') }}:
|
|
fpga_imgs_source: 'Pipeline'
|
|
${{ else }}:
|
|
fpga_imgs_source: 'Filesystem'
|
|
- template: tests/job-uhd-x440-hardware-tests-sdr-test0.yml
|
|
parameters:
|
|
${{ if contains(parameters.fpga_imgs_source, 'Pipeline') }}:
|
|
fpga_imgs_source: 'Pipeline'
|
|
${{ else }}:
|
|
fpga_imgs_source: 'Filesystem'
|
|
|
|
- stage: test_uhd_x4xx_pebbles_stage
|
|
displayName: RF Test UHD x4xx pebbles
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- build_uhd_embedded_system_images_x4xx
|
|
- build_gnuradio_stage_linux
|
|
- provide_x410_fpga_images_stage
|
|
- provide_x440_fpga_images_stage
|
|
# This will make $(UhdTestList) available to jobs/steps/tasks, but not for the
|
|
# condition.
|
|
variables:
|
|
UhdTestList: $[stageDependencies.analyze_changeset.analyze.outputs['gen_testlist.UhdTestList']]
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x4xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x410'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x440')
|
|
))
|
|
jobs:
|
|
- template: tests/job-uhd-x410-hardware-tests-pebbles.yml
|
|
parameters:
|
|
${{ if contains(parameters.fpga_imgs_source, 'Pipeline') }}:
|
|
fpga_imgs_source: 'Pipeline'
|
|
${{ else }}:
|
|
fpga_imgs_source: 'Filesystem'
|
|
runX410X4400RfSubset: true
|
|
testLength: ${{ parameters.testLength }}
|
|
- template: tests/job-uhd-x440-hardware-tests-pebbles.yml
|
|
parameters:
|
|
${{ if contains(parameters.fpga_imgs_source, 'Pipeline') }}:
|
|
fpga_imgs_source: 'Pipeline'
|
|
${{ else }}:
|
|
fpga_imgs_source: 'Filesystem'
|
|
testLength: ${{ parameters.testLength }}
|
|
|
|
- stage: test_uhd_x4xx_s175_stage
|
|
displayName: RF Test UHD x4xx s175
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- build_uhd_embedded_system_images_x4xx
|
|
- build_gnuradio_stage_linux
|
|
- provide_x420_fpga_images_stage
|
|
# This will make $(UhdTestList) available to jobs/steps/tasks, but not for the
|
|
# condition.
|
|
variables:
|
|
UhdTestList: $[stageDependencies.analyze_changeset.analyze.outputs['gen_testlist.UhdTestList']]
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x4xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x420'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x420')
|
|
))
|
|
jobs:
|
|
- template: tests/job-uhd-x420-hardware-tests-s175.yml
|
|
parameters:
|
|
${{ if contains(parameters.fpga_imgs_source, 'Pipeline') }}:
|
|
fpga_imgs_source: 'Pipeline'
|
|
${{ else }}:
|
|
fpga_imgs_source: 'Filesystem'
|
|
testLength: ${{ parameters.testLength }}
|
|
runPyTest: true
|
|
runPyTestNonRF: true
|
|
runDevTest: true
|
|
runSystemImageTest: true
|
|
|
|
- stage: test_uhd_x4xx_saison_stage
|
|
displayName: RF Test UHD x4xx saison
|
|
dependsOn:
|
|
- build_uhd_stage_linux
|
|
- build_uhd_embedded_system_images_x4xx
|
|
- build_gnuradio_stage_linux
|
|
- analyze_changeset
|
|
- provide_x440_fpga_images_stage
|
|
# This will make $(UhdTestList) available to jobs/steps/tasks, but not for the
|
|
# condition.
|
|
variables:
|
|
UhdTestList: $[stageDependencies.analyze_changeset.analyze.outputs['gen_testlist.UhdTestList']]
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x4xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x440')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: tests/job-uhd-x440-hardware-tests-saison.yml
|
|
parameters:
|
|
${{ if contains(parameters.fpga_imgs_source, 'Pipeline') }}:
|
|
fpga_imgs_source: 'Pipeline'
|
|
${{ else }}:
|
|
fpga_imgs_source: 'Filesystem'
|
|
extra_rf_test_args: --test_selector test_rx_phase_coherence.py test_tx_phase_coherence.py
|
|
testLength: ${{ parameters.testLength }}
|
|
|
|
- stage: test_uhd_rf_test_stage
|
|
displayName: RF Test UHD n3xx pebbles
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- build_uhd_embedded_system_images_n3xx
|
|
- build_gnuradio_stage_linux
|
|
- provide_n300_fpga_images_stage
|
|
- provide_n310_fpga_images_stage
|
|
- provide_n320_fpga_images_stage
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.n320'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.n310'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.n3xx')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-uhd-rf-tests-pebbles.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
testDevices: 'n3xx'
|
|
|
|
- stage: test_uhd_obx_stage
|
|
displayName: Test UHD X310 + OBX
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- build_gnuradio_stage_linux
|
|
- provide_x300_fpga_images_stage
|
|
- provide_x310_fpga_images_stage
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.x3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.x3xx')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-uhd-devtest-x310-obx.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
- template: job-uhd-rf-tests-x310-obx.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
|
|
- stage: test_uhd_b310_stage
|
|
displayName: Test UHD B310
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- build_gnuradio_stage_linux
|
|
- provide_b310_fpga_images_stage
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
or(
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.rf.b3xx'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.all'),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'devtest.b3xx')
|
|
)
|
|
)
|
|
jobs:
|
|
- template: job-uhd-devtest-b310.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
- template: job-uhd-rf-tests-b310.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
|
|
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
|
|
|
|
- stage: uhd_streaming_tests_stage
|
|
displayName: UHD Streaming Tests
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_stage_linux
|
|
- build_uhd_embedded_system_images_e320
|
|
- build_uhd_embedded_system_images_n3xx
|
|
- build_uhd_embedded_system_images_x4xx
|
|
- provide_e320_fpga_images_stage
|
|
- provide_n300_fpga_images_stage
|
|
- provide_n310_fpga_images_stage
|
|
- provide_n320_fpga_images_stage
|
|
- provide_x300_fpga_images_stage
|
|
- provide_x310_fpga_images_stage
|
|
- provide_x410_fpga_images_stage
|
|
- provide_x440_fpga_images_stage
|
|
condition: >
|
|
and(
|
|
succeeded(),
|
|
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming')
|
|
)
|
|
jobs:
|
|
- template: job-uhd-streaming-tests.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
|
|
testLength: ${{ parameters.testLength }}
|
|
selectedTests: ${{ split(replace(parameters.selected_streaming_tests, ' ', ''), ',') }}
|
|
|
|
- stage: test_labview_usrp_examples
|
|
displayName: Test LabVIEW USRP Examples
|
|
dependsOn:
|
|
- analyze_changeset
|
|
- build_uhd_embedded_system_images_x4xx
|
|
- build_uhd_installer_stage_win
|
|
- provide_x410_fpga_images_stage
|
|
jobs:
|
|
- template: job-uhd-usrp-tests-uhdlvtest.yml
|