aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Crymble <matthew.crymble@ni.com>2024-01-12 14:59:51 -0600
committerAki Tomita <121511582+atomita-ni@users.noreply.github.com>2024-01-18 09:13:50 -0600
commitf63a17ff3539723290ce21013bbb0d9a4bf440ed (patch)
tree05e49f1894fb54296c6eef00363a3d560ba0689f
parentci: run x4xx tests if x4xx ci changes are made (diff)
downloaduhd-f63a17ff3539723290ce21013bbb0d9a4bf440ed.tar.xz
uhd-f63a17ff3539723290ce21013bbb0d9a4bf440ed.zip
ci: use UHD version for docker tags
-rw-r--r--.ci/uhd-build-docker-container.yml60
1 files changed, 51 insertions, 9 deletions
diff --git a/.ci/uhd-build-docker-container.yml b/.ci/uhd-build-docker-container.yml
index a058088b1..43708cfb9 100644
--- a/.ci/uhd-build-docker-container.yml
+++ b/.ci/uhd-build-docker-container.yml
@@ -79,8 +79,36 @@ variables:
value: 'rnd-docker-pre/ni/rfsdr/'
jobs:
+- job: set_uhd_docker_image_version
+ displayName: Set UHD Docker Image Version
+ pool:
+ name: Drivers-NIBuildFarm-RFMIBUILD
+ demands:
+ - agent.os -equals Linux
+ steps:
+ - checkout: self
+ clean: true
+ - script: |
+ cd $(Build.SourcesDirectory)
+ uhd_version_major=$(sed -nE "s/^set\(UHD_VERSION_MAJOR\s+([0-9]+)\)/\1/p" host/cmake/Modules/UHDVersion.cmake)
+ uhd_version_api=$(sed -nE "s/^set\(UHD_VERSION_API\s+([0-9]+)\)/\1/p" host/cmake/Modules/UHDVersion.cmake)
+ uhd_version_abi=$(sed -nE "s/^set\(UHD_VERSION_ABI\s+([0-9]+)\)/\1/p" host/cmake/Modules/UHDVersion.cmake)
+ if [[ -z $uhd_version_major || -z $uhd_version_api || -z $uhd_version_abi ]]
+ then
+ echo "Error parsing UHDVersion.cmake for UHD Version"
+ exit 1
+ fi
+
+ uhd_docker_image_version=${uhd_version_major}.${uhd_version_api}.${uhd_version_abi}_$(Build.BuildNumber)
+ echo "Using UHD version string: $uhd_docker_image_version"
+ echo "##vso[task.setvariable variable=uhdDockerImageVersion;isOutput=true;]$uhd_docker_image_version"
+ name: set_uhd_version
+
- job: build_image_linux
+ dependsOn: set_uhd_docker_image_version
displayName: Build Docker Image
+ variables:
+ uhdDockerImageVersion: $[ dependencies.set_uhd_docker_image_version.outputs['set_uhd_version.uhdDockerImageVersion'] ]
pool:
name: Drivers-NIBuildFarm-RFMIBUILD
demands:
@@ -101,7 +129,7 @@ jobs:
${{ else }}:
containerRegistry: rnd-docker-niartifacts-pre-publish
repository: '$(dockerImagePrefix)$(dockerImageName)'
- tags: $(Build.BuildNumber)
+ tags: $(uhdDockerImageVersion)
arguments: --no-cache --pull
- task: Docker@2
displayName: Push Image
@@ -112,11 +140,15 @@ jobs:
${{ else }}:
containerRegistry: rnd-docker-niartifacts-pre-publish
repository: '$(dockerImagePrefix)$(dockerImageName)'
- tags: $(Build.BuildNumber)
+ tags: $(uhdDockerImageVersion)
- job: test_image_linux
displayName: Test Docker Image
- dependsOn: build_image_linux
+ dependsOn:
+ - build_image_linux
+ - set_uhd_docker_image_version
+ variables:
+ uhdDockerImageVersion: $[ dependencies.set_uhd_docker_image_version.outputs['set_uhd_version.uhdDockerImageVersion'] ]
pool:
name: Drivers-NIBuildFarm-RFMIBUILD
demands:
@@ -125,7 +157,7 @@ jobs:
strategy:
matrix: $[ variables.linuxDockerImages ]
container:
- image: '$(dockerImagePrefix)$(dockerImageName):$(Build.BuildNumber)'
+ image: "$(dockerImagePrefix)$(dockerImageName):$(uhdDockerImageVersion)"
${{ if or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/heads/UHD-')) }}:
endpoint: rnd-docker-niartifacts-ci-readonly
${{ else }}:
@@ -149,8 +181,11 @@ jobs:
displayName: Test image with cmake ninja uhd
- job: build_image_win
+ dependsOn: set_uhd_docker_image_version
displayName: Build Docker Image Windows
timeoutInMinutes: 180
+ variables:
+ uhdDockerImageVersion: $[ dependencies.set_uhd_docker_image_version.outputs['set_uhd_version.uhdDockerImageVersion'] ]
pool:
name: Drivers-NIBuildFarm-RFMIBUILD
demands:
@@ -171,7 +206,7 @@ jobs:
${{ else }}:
containerRegistry: rnd-docker-niartifacts-pre-publish
repository: '$(dockerImagePrefix)$(dockerImageName)'
- tags: $(Build.BuildNumber)
+ tags: $(uhdDockerImageVersion)
buildContext: $(Build.SourcesDirectory)
arguments: --no-cache --pull
- task: Docker@2
@@ -183,12 +218,16 @@ jobs:
${{ else }}:
containerRegistry: rnd-docker-niartifacts-pre-publish
repository: '$(dockerImagePrefix)$(dockerImageName)'
- tags: $(Build.BuildNumber)
+ tags: $(uhdDockerImageVersion)
- job: test_image_win
displayName: Test Docker Image Windows
timeoutInMinutes: 90
- dependsOn: build_image_win
+ dependsOn:
+ - build_image_win
+ - set_uhd_docker_image_version
+ variables:
+ uhdDockerImageVersion: $[ dependencies.set_uhd_docker_image_version.outputs['set_uhd_version.uhdDockerImageVersion'] ]
pool:
name: Drivers-NIBuildFarm-RFMIBUILD
demands:
@@ -197,7 +236,7 @@ jobs:
strategy:
matrix: $[ variables.winDockerImages ]
container:
- image: '$(dockerImagePrefix)$(dockerImageName):$(Build.BuildNumber)'
+ image: "$(dockerImagePrefix)$(dockerImageName):$(uhdDockerImageVersion)"
options: --cpu-count 6 --memory 12G
${{ if or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/heads/UHD-')) }}:
endpoint: rnd-docker-niartifacts-ci-readonly
@@ -224,7 +263,10 @@ jobs:
displayName: Load Visual C++ Env
- job: export_build_number
+ dependsOn: set_uhd_docker_image_version
displayName: Export Image List to Artifacts
+ variables:
+ uhdDockerImageVersion: $[ dependencies.set_uhd_docker_image_version.outputs['set_uhd_version.uhdDockerImageVersion'] ]
pool:
name: Drivers-NIBuildFarm-RFMIBUILD
demands: sh
@@ -233,7 +275,7 @@ jobs:
- script: |
cd $(Build.ArtifactStagingDirectory)
touch $(UHDPipelineDockerImageArtifactName)
- echo "$(Build.BuildNumber)" > $(UHDPipelineDockerImageArtifactName)
+ echo "$(uhdDockerImageVersion)" > $(UHDPipelineDockerImageArtifactName)
echo "${{ variables.dockerImagePrefix }}" >> $(UHDPipelineDockerImageArtifactName)
echo "${{ variables.linuxDockerImages }}" >> $(UHDPipelineDockerImageArtifactName)
echo "${{ variables.winDockerImages }}" >> $(UHDPipelineDockerImageArtifactName)