ci: streaming: generic agent selection by capabilities

This commit is contained in:
Frank Dietze 2026-03-05 12:20:07 +01:00 committed by Frank Dietze
parent 15264cdc06
commit e416bffa95
10 changed files with 623 additions and 750 deletions

View File

@ -1,133 +0,0 @@
parameters:
- name: uhdSrcDir
type: string
- name: uhdArtifactSource
type: string
default: current
- name: uhdFpgaArtifactSource
type: string
default: current
- name: testLength
type: string
- name: dpdkDirs
type: object
default:
- '/opt/dpdk-19.11'
- '/opt/dpdk-23.11'
jobs:
- template: job-uhd-streaming-tests.yml
parameters:
suiteName: 'beauty'
testLength: '${{ parameters.testLength }}'
toolset: 'make'
uhdSrcDir: '${{ parameters.uhdSrcDir }}'
uhdArtifactSource: ${{ parameters.uhdArtifactSource }}
uhdFpgaArtifactSource: '${{ parameters.uhdFpgaArtifactSource }}'
dpdkDirs: '${{ parameters.dpdkDirs }}'
dutMatrix:
# beauty-N320-0 XG:
# dutName: 'beauty-N320-0'
# dutType: 'N320'
# dutAddr: '192.168.10.4'
# dutSecondAddr: '192.168.20.4'
# dutFPGA: 'XG'
# dutNameId: ''
# dutNumRecvFrames: ''
# dutNumSendFrames: ''
beauty-X310-0:
dutName: 'beauty-X310-0'
dutType: 'x310'
dutAddr: '$(x310_dutAddr)'
dutSecondAddr: '$(x310_dutSecondAddr)'
dutFPGA: 'XG'
dutNameId: ''
dutNumRecvFrames: ''
dutNumSendFrames: ''
jtagSerial: '$(x310_jtagSerial)'
sfpInt0: '$(x310_sfpInt0)'
sfpInt1: '$(x310_sfpInt1)'
# beauty-X410-0 X4_200:
# dutName: 'beauty-X410-0'
# dutFamily: 'x4xx'
# dutType: 'x410'
# dutAddr: '$(x410_dutAddr)'
# dutSecondAddr: '$(x410_dutSecondAddr)'
# dutFPGA:'X4_200'
# dutNameId: ''
# dutEmbeddedImagesArtifact: 'x4xx-images'
# uartSerial: '$(x410_uartSerial)'
# dutNumRecvFrames: ''
# dutNumSendFrames: ''
# sfpInt0: '$(x410_sfpInt0)'
# sfpInt1: '$(x410_sfpInt1)'
beauty-X410-0 CG_400:
dutName: 'beauty-X410-0'
dutFamily: 'x4xx'
dutType: 'x410'
dutAddr: '$(x410_dutAddr)'
dutSecondAddr: '$(x410_dutSecondAddr)'
dutFPGA: 'CG_400'
dutNameId: ''
dutEmbeddedImagesArtifact: 'x4xx-images'
uartSerial: '$(x410_uartSerial)'
dutNumRecvFrames: ''
dutNumSendFrames: ''
sfpInt0: '$(x410_sfpInt0)'
sfpInt1: '$(x410_sfpInt1)'
beauty-X410-0 UC_200:
dutName: 'beauty-X410-0'
dutFamily: 'x4xx'
dutType: 'x410'
# UC image: device is reachable only via dutSecondAddr
dutAddr: '$(x410_dutSecondAddr)'
dutSecondAddr: '$(x410_dutSecondAddr)'
dutFPGA: 'UC_200'
dutNameId: ''
dutEmbeddedImagesArtifact: 'x4xx-images'
uartSerial: '$(x410_uartSerial)'
dutNumRecvFrames: ''
dutNumSendFrames: ''
sfpInt0: '$(x410_sfpInt0)'
sfpInt1: '$(x410_sfpInt1)'
# beauty-E320-0:
# dutName: 'beauty-E320-0'
# dutType: 'E320'
# dutAddr: '192.168.10.5'
# dutSecondAddr: ''
# dutFPGA: 'XG'
# dutNameId: ''
# dutNumRecvFrames: ''
# dutNumSendFrames: ''
# beauty-N310-0:
# dutName: 'beauty-N310-0'
# dutType: 'N310'
# dutAddr: '192.168.10.6'
# dutSecondAddr: '192.168.20.6'
# dutFPGA: 'XG'
# dutNameId: ''
# dutNumRecvFrames: ''
# dutNumSendFrames: ''
# beauty-X310_TwinRx-0:
# dutName: 'beauty-X310_TwinRx-0'
# dutType: 'X310_TwinRx'
# dutAddr: '192.168.10.7'
# dutSecondAddr: '192.168.20.7'
# dutFPGA: 'XG'
# dutNameId: ''
# dutNumRecvFrames: ''
# dutNumSendFrames: ''
# sfpInt0: 'ens4f0'
# sfpInt1: 'ens4f1'
# beauty-B210-0:
# dutName: 'beauty-B210-0'
# dutFamily: 'b200'
# dutType: 'B210'
# dutAddr: ''
# dutSecondAddr: ''
# dutFPGA: ''
# dutNameId: 'MyB210'
# dutNumRecvFrames: '256'
# dutNumSendFrames: '256'
# dutGetFpgaImagesMethod: 'uhd_images_downloader'

View File

@ -1,50 +0,0 @@
parameters:
- name: uhdSrcDir
type: string
- name: uhdArtifactSource
type: string
default: current
- name: uhdFpgaArtifactSource
type: string
default: current
- name: testLength
type: string
- name: dpdkDirs
type: object
default:
- '/opt/dpdk-19.11'
- '/opt/dpdk-23.11'
jobs:
- template: job-uhd-streaming-tests.yml
parameters:
suiteName: 'sdr_s175_tests_b2xx'
testLength: '${{ parameters.testLength }}'
toolset: 'make'
uhdSrcDir: '${{ parameters.uhdSrcDir }}'
uhdArtifactSource: ${{ parameters.uhdArtifactSource }}
uhdFpgaArtifactSource: '${{ parameters.uhdFpgaArtifactSource }}'
dpdkDirs: '${{ parameters.dpdkDirs }}'
dutMatrix:
sdr-s175-streaming-tests-B206-0:
dutName: 'sdr_s175_tests-b206-0'
dutFamily: 'b200'
dutType: 'B206'
dutAddr: ''
dutSecondAddr: ''
dutFPGA: ''
dutNameId: 'B206i'
dutNumRecvFrames: '256'
dutNumSendFrames: '256'
dutGetFpgaImagesMethod: 'uhd_images_downloader'
sdr-s175-streaming-tests-B210-0:
dutName: 'sdr_s175_tests-b210-0'
dutFamily: 'b200'
dutType: 'B210'
dutAddr: ''
dutSecondAddr: ''
dutFPGA: ''
dutNameId: 'MyB210'
dutNumRecvFrames: '256'
dutNumSendFrames: '256'
dutGetFpgaImagesMethod: 'uhd_images_downloader'

View File

@ -1,57 +0,0 @@
parameters:
- name: uhdSrcDir
type: string
- name: uhdArtifactSource
default: current
type: string
- name: uhdFpgaArtifactSource
type: string
default: current
- name: testLength
type: string
- name: dpdkDirs
type: object
default:
- '/opt/dpdk-19.11'
- '/opt/dpdk-23.11'
jobs:
- template: job-uhd-streaming-tests.yml
parameters:
suiteName: 'streamingx440'
testLength: '${{ parameters.testLength }}'
toolset: 'make'
nicType: '100gbe'
uhdSrcDir: '${{ parameters.uhdSrcDir }}'
uhdArtifactSource: ${{ parameters.uhdArtifactSource }}
uhdFpgaArtifactSource: '${{ parameters.uhdFpgaArtifactSource }}'
dpdkDirs: '${{ parameters.dpdkDirs }}'
dutMatrix:
X440-0 CG_400:
dutName: 'streaming-X440-0'
dutFamily: 'x4xx'
dutType: 'x440'
dutAddr: '$(x440_dutAddr)'
dutSecondAddr: '$(x440_dutSecondAddr)'
dutFPGA: 'CG_400'
dutNameId: ''
dutEmbeddedImagesArtifact: 'x4xx-images'
uartSerial: '$(x440_uartSerial)'
dutNumRecvFrames: ''
dutNumSendFrames: ''
sfpInt0: '$(x440_sfpInt0)'
sfpInt1: '$(x440_sfpInt1)'
X440-0 CG_1600:
dutName: 'streaming-X440-0'
dutFamily: 'x4xx'
dutType: 'x440'
dutAddr: '$(x440_dutAddr)'
dutSecondAddr: '$(x440_dutSecondAddr)'
dutFPGA: 'CG_1600'
dutNameId: ''
dutEmbeddedImagesArtifact: 'x4xx-images'
uartSerial: '$(x440_uartSerial)'
dutNumRecvFrames: ''
dutNumSendFrames: ''
sfpInt0: '$(x440_sfpInt0)'
sfpInt1: '$(x440_sfpInt1)'

File diff suppressed because it is too large Load Diff

View File

@ -26,6 +26,10 @@ parameters:
- name: testLength
type: string
default: 'smoke'
- name: selected_streaming_tests
type: string
displayName: Streaming Tests Multi-Select (comma-separated)
default: 'B206,B210,X310_XG,X410_CG_400,X410_UC_200,X440_CG_400,X440_CG_1600'
- name: create_sbom
type: boolean
displayName: Create SBOMs
@ -979,36 +983,19 @@ stages:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
fpga_imgs_source: ${{ parameters.fpga_imgs_source }}
- stage: test_streaming_beauty_stage
displayName: Test UHD Streaming beauty
- stage: uhd_streaming_tests_stage
displayName: UHD Streaming Tests
dependsOn:
- analyze_changeset
- build_uhd_stage_linux
- build_uhd_embedded_system_images
- 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
condition: >
and(
succeeded(),
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming')
)
jobs:
- template: job-uhd-streaming-tests-beauty.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
testLength: ${{ parameters.testLength }}
- template: job-uhd-streaming-tests-s175.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
testLength: ${{ parameters.testLength }}
- stage: test_streaming_x440_stage
displayName: Test UHD Streaming x440
dependsOn:
- analyze_changeset
- build_uhd_stage_linux
- build_uhd_embedded_system_images
- provide_x440_fpga_images_stage
condition: >
and(
@ -1016,10 +1003,11 @@ stages:
contains(dependencies.analyze_changeset.outputs['analyze.gen_testlist.UhdTestList'], 'hw.streaming')
)
jobs:
- template: job-uhd-streaming-tests-x440.yml
- 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

View File

@ -0,0 +1,10 @@
steps:
- script: |
cd $(Agent.TempDirectory)
python3 -m venv pytest_venv
source pytest_venv/bin/activate
echo '##vso[task.setvariable variable=PYTEST_VENV]'$(realpath pytest_venv)
python3 -m pip install -U pip
pip3 install -r $(Build.SourcesDirectory)/ettus-rts/config/remote/streaming/requirements.txt
displayName: Create pytest venv

View File

@ -15,10 +15,10 @@ parameters:
type: boolean
displayName: Run Streaming Tests
default: false
- name: run_x440_streaming_tests
type: boolean
displayName: Run X440 Streaming Tests
default: false
- name: selected_streaming_tests
type: string
displayName: Streaming Tests Multi-Select (comma-separated)
default: 'B206,B210,X310_XG,X410_CG_400,X410_UC_200,X440_CG_400,X440_CG_1600'
- name: run_devtests
type: boolean
displayName: Run devtests
@ -74,11 +74,12 @@ parameters:
- 'smoke'
- 'full'
- 'stress'
- name: dpdkDirs
- name: dpdkVersions
type: object
default:
- '/opt/dpdk-19.11'
- '/opt/dpdk-23.11'
- '21.11'
- '23.11'
- '25.11'
- name: x300_fpga_matrix
type: object
default:
@ -207,38 +208,19 @@ stages:
uhdFpgaArtifactSource: ${{ variables.uhdFpgaArtifactSource }}
fpga_imgs_source: ${{ variables.fpga_imgs_source }}
- stage: test_streaming_stage
displayName: Test UHD Streaming
- stage: stage_uhd_streaming_tests
displayName: UHD Streaming Tests
dependsOn: []
condition: ${{ parameters.run_streaming_tests }}
jobs:
- template: templates/job-uhd-streaming-tests-beauty.yml
- template: templates/job-uhd-streaming-tests.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
uhdArtifactSource: uhd_mono_pipeline
uhdFpgaArtifactSource: ${{ variables.uhdFpgaArtifactSource }}
testLength: ${{ parameters.testLength }}
dpdkDirs: '${{ parameters.dpdkDirs }}'
- template: templates/job-uhd-streaming-tests-s175.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
uhdArtifactSource: uhd_mono_pipeline
uhdFpgaArtifactSource: ${{ variables.uhdFpgaArtifactSource }}
testLength: ${{ parameters.testLength }}
dpdkDirs: '${{ parameters.dpdkDirs }}'
- stage: test_x440_streaming_stage
displayName: Test X440 Streaming
dependsOn: []
condition: ${{ parameters.run_x440_streaming_tests }}
jobs:
- template: templates/job-uhd-streaming-tests-x440.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
uhdArtifactSource: uhd_mono_pipeline
uhdFpgaArtifactSource: ${{ variables.uhdFpgaArtifactSource }}
testLength: ${{ parameters.testLength }}
dpdkDirs: '${{ parameters.dpdkDirs }}'
dpdkVersions: ${{ parameters.dpdkVersions }}
selectedTests: ${{ split(replace(parameters.selected_streaming_tests, ' ', ''), ',') }}
- stage: test_uhd_devtest
displayName: Test UHD Devtest

View File

@ -104,19 +104,7 @@ stages:
displayName: Test UHD Streaming
dependsOn: []
jobs:
- template: templates/job-uhd-streaming-tests-beauty.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
uhdArtifactSource: uhd_mono_pipeline
uhdFpgaArtifactSource: ${{ variables.uhdFpgaArtifactSource }}
testLength: ${{ parameters.testLength }}
- template: templates/job-uhd-streaming-tests-s175.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
uhdArtifactSource: uhd_mono_pipeline
uhdFpgaArtifactSource: ${{ variables.uhdFpgaArtifactSource }}
testLength: ${{ parameters.testLength }}
- template: templates/job-uhd-streaming-tests-x440.yml
- template: templates/job-uhd-streaming-tests-matrix.yml
parameters:
uhdSrcDir: $(Build.SourcesDirectory)/uhddev
uhdArtifactSource: uhd_mono_pipeline

View File

@ -135,6 +135,10 @@ parameters:
- 'files.ettus.com (Public)'
displayName: Published Package Access
default: 'Internal'
- name: selected_streaming_tests
type: string
displayName: Streaming Tests Multi-Select (comma-separated)
default: 'B206,B210,X310_XG,X410_CG_400,X410_UC_200,X440_CG_400,X440_CG_1600'
trigger: none
@ -181,3 +185,5 @@ extends:
publish_int_files: true
package_and_publish_images: ${{ parameters.package_and_publish_images }}
package_access: ${{ parameters.package_access }}
selected_streaming_tests: ${{ parameters.selected_streaming_tests }}

View File

@ -118,6 +118,10 @@ parameters:
- 'files.ettus.com (Public)'
displayName: Published Package Access
default: 'Internal'
- name: selected_streaming_tests
type: string
displayName: Streaming Tests Multi-Select (comma-separated)
default: 'B206,B210,X310_XG,X410_CG_400,X410_UC_200,X440_CG_400,X440_CG_1600'
trigger:
batch: true
@ -161,3 +165,4 @@ extends:
publish_int_files: true
package_and_publish_images: ${{ parameters.package_and_publish_images }}
package_access: ${{ parameters.package_access }}
selected_streaming_tests: ${{ parameters.selected_streaming_tests }}