diff options
Diffstat (limited to '.ci/templates')
-rw-r--r-- | .ci/templates/job-uhd-hardware-tests.yml | 99 | ||||
-rw-r--r-- | .ci/templates/steps-build-uhd.yml | 21 |
2 files changed, 120 insertions, 0 deletions
diff --git a/.ci/templates/job-uhd-hardware-tests.yml b/.ci/templates/job-uhd-hardware-tests.yml new file mode 100644 index 000000000..a2ca9755d --- /dev/null +++ b/.ci/templates/job-uhd-hardware-tests.yml @@ -0,0 +1,99 @@ +parameters: +- name: dutMatrix + type: object +- name: runDevTest + type: boolean + default: true +- name: runPyTest + type: boolean + default: true + +jobs: +- job: build_uhd_run_hardware_test + displayName: Build uhd and run hardware test + strategy: + matrix: ${{ parameters.dutMatrix }} + + pool: + name: 'de-dre-lab' + demands: uhd_ats -equals $(pipelineAgent) + + steps: + - checkout: ettus-rts + clean: true + + - checkout: self + clean: true + + - template: steps-build-uhd.yml + parameters: + uhdSrcDir: $(Build.SourcesDirectory)/uhddev + uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build + + - script: | + mkdir -p $(Common.TestResultsDirectory)/devtest + cd $(Common.TestResultsDirectory)/devtest + python3 $(Build.SourcesDirectory)/uhddev/host/tests/devtest/run_testsuite.py \ + --src-dir $(Build.SourcesDirectory)/uhddev/host/tests/devtest \ + --devtest-pattern $(devtestPattern) --args addr=$(devAddr),type=$(devType) \ + --build-type Release --build-dir $(Build.BinariesDirectory)/uhddev/build \ + --python-interp python3 --xml + continueOnError: true + condition: and(succeeded(), eq('${{ parameters.runDevTest }}', true), eq(variables['deviceEnabled'], 'true'), eq(variables['devBus'], 'ip')) + displayName: Run devtest for IP + + - script: | + mkdir -p $(Common.TestResultsDirectory)/devtest + cd $(Common.TestResultsDirectory)/devtest + python3 $(Build.SourcesDirectory)/uhddev/host/tests/devtest/run_testsuite.py \ + --src-dir $(Build.SourcesDirectory)/uhddev/host/tests/devtest \ + --devtest-pattern $(devtestPattern) --args serial=$(devSerial),type=$(devType) \ + --build-type Release --build-dir $(Build.BinariesDirectory)/uhddev/build \ + --python-interp python3 --xml + continueOnError: true + condition: and(succeeded(), eq('${{ parameters.runDevTest }}', true), eq(variables['deviceEnabled'], 'true'), ne(variables['devBus'], 'ip')) + displayName: Run devtest for PCIe / USB + + - script: | + mkdir -p $(Common.TestResultsDirectory)/pytest + cd $(Build.SourcesDirectory)/ettus-rts/config/remote/python_tests + + export PATH=$(Build.BinariesDirectory)/uhddev/build/utils:$(Build.BinariesDirectory)/uhddev/build/examples:$PATH + export LD_LIBRARY_PATH=$(Build.BinariesDirectory)/uhddev/build/lib:$LD_LIBRARY_PATH + export PYTHONPATH=$(Build.BinariesDirectory)/uhddev/build/python/build/lib:$PYTHONPATH + + python3 automated_main.py --ats_config $(pytestAtsConfig) --dut $(pytestDUT) \ + --results_path $(Common.TestResultsDirectory)/pytest + continueOnError: true + condition: and(succeeded(), eq('${{ parameters.runPyTest }}', true), eq(variables['deviceEnabled'], 'true')) + displayName: Run pytests + + - script: | + cd $(Common.TestResultsDirectory)/devtest + python3 $(Build.SourcesDirectory)/uhddev/.ci/utils/format_devtest_junitxml.py \ + $(Common.TestResultsDirectory)/devtest \ + $(Common.TestResultsDirectory)/devtest/devtestresults.xml + continueOnError: true + condition: and(succeeded(), eq('${{ parameters.runDevTest }}', true), eq(variables['deviceEnabled'], 'true')) + displayName: Format devtest xml + + - task: PublishTestResults@2 + inputs: + testResultsFormat: 'JUnit' + testResultsFiles: '$(Common.TestResultsDirectory)/devtest/devtestresults.xml' + testRunTitle: $(devName) devtest + buildConfiguration: 'Release' + mergeTestResults: true + failTaskOnFailedTests: true + condition: and(eq('${{ parameters.runDevTest }}', true), eq(variables['deviceEnabled'], 'true')) + displayName: Upload devtest results + + - task: PublishTestResults@2 + inputs: + testResultsFormat: 'JUnit' + testResultsFiles: '$(Common.TestResultsDirectory)/pytest/**/*.xml' + testRunTitle: $(devName) pytest + buildConfiguration: 'Release' + mergeTestResults: true + condition: and(succeeded(), eq('${{ parameters.runPyTest }}', true), eq(variables['deviceEnabled'], 'true')) + displayName: Upload pytest results diff --git a/.ci/templates/steps-build-uhd.yml b/.ci/templates/steps-build-uhd.yml new file mode 100644 index 000000000..22cb60cc9 --- /dev/null +++ b/.ci/templates/steps-build-uhd.yml @@ -0,0 +1,21 @@ +parameters: +- name: uhdSrcDir + type: string +- name: uhdBuildDir + type: string + +steps: +- script: | + mkdir -p ${{ parameters.uhdBuildDir }} + cd ${{ parameters.uhdBuildDir }} + cmake ${{ parameters.uhdSrcDir }}/host + displayName: cmake make UHD +- script: | + cd ${{ parameters.uhdBuildDir }} + make -j$(nproc) + displayName: make UHD +- script: | + cd ${{ parameters.uhdBuildDir }} + ctest --no-compress-output --output-on-failure -T test + continueOnError: true + displayName: ctest make UHD |