mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
This fixes issues caused by e22a2a7395.
That commit tried to consolidate the selection of the endpoint based on branch name
in a single shared location. But due to the order that azure pipelines evaluates
things, the endpoints were being authenticated before the stage variables
were evaluated.
From azure docs:
"Resources are authorized before a stage can start running,
so stage- and job-level variables aren't available. Pipeline-level
variables can be used, but only those variables explicitly included in the pipeline."
181 lines
7.5 KiB
YAML
181 lines
7.5 KiB
YAML
parameters:
|
|
- name: 'toolset'
|
|
type: string
|
|
values:
|
|
- make
|
|
- make_custom_boost_version
|
|
- make_trace
|
|
- ninja
|
|
- msbuild
|
|
- msbuild_python
|
|
- make_homebrew_macos
|
|
- 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
|
|
|
|
jobs:
|
|
- job: build_ctest_and_upload_uhd_${{ parameters.toolset }}
|
|
displayName: ${{ parameters.toolset }}, ctest, and upload UHD
|
|
dependsOn: get_latest_uhd_docker
|
|
timeoutInMinutes: 90
|
|
variables:
|
|
# Docker vars from job-get-latest-uhd-docker.yml
|
|
dockerBuildNumber: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.dockerBuildNumber'] ]
|
|
dockerImagePrefix: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.dockerImagePrefix'] ]
|
|
dockerImageMatrixLin: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.dockerImageMatrixLin'] ]
|
|
dockerImageMatrixWin: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.dockerImageMatrixWin'] ]
|
|
dockerImageMatrixUbuntuDeb: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.dockerImageMatrixUbuntuDeb'] ]
|
|
macOSBuilders: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.macOSBuilders'] ]
|
|
dockerImageMatrixSourcePackageBuilders: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.dockerImageMatrixSourcePackageBuilders'] ]
|
|
dockerImageMatrixFedoraRpm: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.dockerImageMatrixFedoraRpm'] ]
|
|
dockerImageMatrixWinPythonBuild: $[ dependencies.get_latest_uhd_docker.outputs['setDockerVar.dockerImageMatrixWinPythonBuild'] ]
|
|
pool:
|
|
${{ if contains(parameters.toolset, 'msbuild') }}:
|
|
name: de-dre-lab
|
|
${{ if not(contains(parameters.toolset, 'msbuild')) }}:
|
|
name: Drivers-NIBuildFarm-RFMIBUILD
|
|
demands:
|
|
- ${{ if contains(parameters.toolset, 'msbuild') }}:
|
|
- docker
|
|
- Agent.OS -equals Windows_NT
|
|
- rfsdr-build
|
|
- ${{ if or(eq(parameters.toolset, 'make'), eq(parameters.toolset, 'make_trace'), eq(parameters.toolset, 'ninja'), eq(parameters.toolset, 'make_custom_boost_version')) }}:
|
|
- docker
|
|
- Agent.OS -equals Linux
|
|
- ${{ if eq(parameters.toolset, 'make_homebrew_macos') }}:
|
|
- Agent.OS -equals Darwin
|
|
- MACOS_MAJOR_VERSION -equals $(macOSVersionDemand)
|
|
- Agent.OSArchitecture -equals $(macOSArchDemand)
|
|
workspace:
|
|
clean: outputs
|
|
strategy:
|
|
${{ if eq(parameters.toolset, 'msbuild') }}:
|
|
matrix: $[ variables.dockerImageMatrixWin ]
|
|
${{ if eq(parameters.toolset, 'msbuild_python') }}:
|
|
matrix: $[ variables.dockerImageMatrixWinPythonBuild ]
|
|
${{ if or(eq(parameters.toolset, 'make'), eq(parameters.toolset, 'make_trace'), eq(parameters.toolset, 'ninja'), eq(parameters.toolset, 'make_custom_boost_version')) }}:
|
|
matrix: $[ variables.dockerImageMatrixLin ]
|
|
${{ if eq(parameters.toolset, 'make_homebrew_macos') }}:
|
|
matrix: $[ variables.macOSBuilders ]
|
|
${{ if ne(parameters.toolset, 'make_homebrew_macos') }}:
|
|
container:
|
|
image: '$(dockerImagePrefix)$(DockerImageName):$(dockerBuildNumber)'
|
|
${{ if or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/heads/UHD-')) }}:
|
|
endpoint: rnd-docker-niartifacts-ci-readonly
|
|
${{ else }}:
|
|
endpoint: rnd-docker-niartifacts-pre-readonly
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
|
|
- download: uhd_build_docker_container
|
|
|
|
- ${{ if eq(parameters.toolset, 'make') }}:
|
|
- template: steps-build-uhd-make.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
|
|
uhdGenerateTestBinaries: true
|
|
|
|
- ${{ if eq(parameters.toolset, 'make_trace') }}:
|
|
- template: steps-build-uhd-make.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
|
|
uhdEnableTraceLog: true
|
|
|
|
- ${{ if eq(parameters.toolset, 'make_homebrew_macos') }}:
|
|
- template: steps-build-uhd-make-homebrew-macos.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
|
|
uhdGenerateTestBinaries: true
|
|
|
|
- ${{ if eq(parameters.toolset, 'ninja') }}:
|
|
- template: steps-build-uhd-ninja.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
|
|
|
|
- ${{ if eq(parameters.toolset, 'msbuild') }}:
|
|
- template: steps-build-uhd-msbuild.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)\\uhddev\\build
|
|
uhdReleaseBinaries: ${{ parameters.release_binaries }}
|
|
uhdBuildPythonAPI: false
|
|
cmakeCompiler: $(cmakeCompiler)
|
|
cmakeArch: $(cmakeArch)
|
|
vsArch: $(vsArch)
|
|
vsYear: $(vsYear)
|
|
uhdGenerateTestBinaries: true
|
|
|
|
- ${{ if eq(parameters.toolset, 'msbuild_python') }}:
|
|
- template: steps-build-uhd-msbuild.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)\\uhddev\\build
|
|
uhdReleaseBinaries: ${{ parameters.release_binaries }}
|
|
uhdBuildPythonAPI: true
|
|
cmakeCompiler: $(cmakeCompiler)
|
|
cmakeArch: $(cmakeArch)
|
|
vsArch: $(vsArch)
|
|
vsYear: $(vsYear)
|
|
uhdGenerateTestBinaries: true
|
|
|
|
- ${{ if eq(parameters.toolset, 'make_custom_boost_version') }}:
|
|
- template: steps-build-uhd-make.yml
|
|
parameters:
|
|
uhdSrcDir: $(Build.SourcesDirectory)
|
|
uhdBuildDir: $(Build.BinariesDirectory)/uhddev/build
|
|
uhdCustomBoostPackage: true
|
|
uhdCustomBoostPackageURL: ${{ parameters.custom_boost_version_url }}
|
|
|
|
- task: ArchiveFiles@2
|
|
inputs:
|
|
rootFolderOrFile: $(Build.BinariesDirectory)
|
|
includeRootFolder: false
|
|
archiveType: tar
|
|
tarCompression: gz
|
|
archiveFile: $(Build.ArtifactStagingDirectory)/uhddev-$(buildOSName)-${{ parameters.toolset }}.tar.gz
|
|
replaceExistingArchive: true
|
|
displayName: Compress build files
|
|
|
|
- task: CopyFiles@2
|
|
inputs:
|
|
sourceFolder: $(Pipeline.Workspace)/uhd_build_docker_container/$(UHDPipelineDockerImageArtifactName)
|
|
targetFolder: $(Build.ArtifactStagingDirectory)
|
|
displayName: Copy builder container version to artifact folder
|
|
|
|
- task: PublishPipelineArtifact@1
|
|
inputs:
|
|
targetPath: '$(Build.ArtifactStagingDirectory)'
|
|
artifactName: 'uhddev-$(buildOSName)-${{ parameters.toolset }}-failed$(System.JobAttempt)'
|
|
condition: in(variables['Agent.JobStatus'], 'SucceededWithIssues', 'Failed', 'Canceled')
|
|
displayName: Upload uhd build artifacts from failure
|
|
|
|
- task: PublishPipelineArtifact@1
|
|
inputs:
|
|
targetPath: '$(Build.ArtifactStagingDirectory)'
|
|
artifactName: 'uhddev-$(buildOSName)-${{ parameters.toolset }}'
|
|
condition: in(variables['Agent.JobStatus'], 'Succeeded')
|
|
displayName: Upload uhd build artifacts
|
|
|
|
- task: CopyFiles@2
|
|
inputs:
|
|
sourceFolder: $(Build.BinariesDirectory)/uhddev/
|
|
contents: build/Testing/**
|
|
targetFolder: $(Common.TestResultsDirectory)
|
|
displayName: Copy ${{ parameters.toolset }} ctest results
|
|
|
|
- task: PublishTestResults@2
|
|
inputs:
|
|
testResultsFormat: cTest
|
|
testResultsFiles: $(Common.TestResultsDirectory)/build/Testing/**/Test.xml
|
|
failTaskOnFailedTests: true
|
|
testRunTitle: uhd ctest $(buildOSName)-${{ parameters.toolset }}
|
|
displayName: Publish $(buildOSName)-${{ parameters.toolset }} ctest results
|