diff options
author | Matthew Crymble <matthew.crymble@ni.com> | 2024-01-12 14:59:51 -0600 |
---|---|---|
committer | Aki Tomita <121511582+atomita-ni@users.noreply.github.com> | 2024-01-18 09:13:50 -0600 |
commit | f63a17ff3539723290ce21013bbb0d9a4bf440ed (patch) | |
tree | 05e49f1894fb54296c6eef00363a3d560ba0689f | |
parent | ci: run x4xx tests if x4xx ci changes are made (diff) | |
download | uhd-f63a17ff3539723290ce21013bbb0d9a4bf440ed.tar.xz uhd-f63a17ff3539723290ce21013bbb0d9a4bf440ed.zip |
ci: use UHD version for docker tags
-rw-r--r-- | .ci/uhd-build-docker-container.yml | 60 |
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) |