aboutsummaryrefslogtreecommitdiffstats
path: root/.ci/uhd-build-docker-container.yml
diff options
context:
space:
mode:
Diffstat (limited to '.ci/uhd-build-docker-container.yml')
-rw-r--r--.ci/uhd-build-docker-container.yml179
1 files changed, 179 insertions, 0 deletions
diff --git a/.ci/uhd-build-docker-container.yml b/.ci/uhd-build-docker-container.yml
new file mode 100644
index 000000000..ab5cfae12
--- /dev/null
+++ b/.ci/uhd-build-docker-container.yml
@@ -0,0 +1,179 @@
+trigger:
+ branches:
+ include:
+ - master
+ paths:
+ include:
+ - .ci/docker
+ - .ci/uhd-build-docker-container.yml
+pr:
+ branches:
+ include:
+ - master
+ paths:
+ include:
+ - .ci/docker
+ - .ci/uhd-build-docker-container.yml
+
+variables:
+- template: uhd-pipeline-vars.yml
+- name: linuxDockerImages
+ value:
+ "{'Fedora-32-builder':{'dockerOSName':'fedora32','dockerImageName':'uhd-builder-fedora32'},
+ 'Fedora-33-builder':{'dockerOSName':'fedora33','dockerImageName':'uhd-builder-fedora33'},
+ 'Ubuntu-1804-builder':{'dockerOSName':'ubuntu1804','dockerImageName':'uhd-builder-ubuntu1804'},
+ 'Ubuntu-2004-builder':{'dockerOSName':'ubuntu2004','dockerImageName':'uhd-builder-ubuntu2004'}}"
+- name: winDockerImages
+ value:
+ "{'VS2017-x86-builder':{'dockerOSName':'win-vs17-v141-x86','dockerImageName':'uhd-builder-vs2017-v141-x86','cmakeCompiler':'Visual Studio 15 2017','cmakeArch':'Win32','vsArch':'x86','vsYear':'2017'},
+ 'VS2017-x64-builder':{'dockerOSName':'win-vs17-v141-x64','dockerImageName':'uhd-builder-vs2017-v141-x64','cmakeCompiler':'Visual Studio 15 2017','cmakeArch':'x64','vsArch':'x64','vsYear':'2017'},
+ 'VS2019-x86-builder':{'dockerOSName':'win-vs19-v142-x86','dockerImageName':'uhd-builder-vs2019-v142-x86','cmakeCompiler':'Visual Studio 16 2019','cmakeArch':'Win32','vsArch':'x86','vsYear':'2019'},
+ 'VS2019-x64-builder':{'dockerOSName':'win-vs19-v142-x64','dockerImageName':'uhd-builder-vs2019-v142-x64','cmakeCompiler':'Visual Studio 16 2019','cmakeArch':'x64','vsArch':'x64','vsYear':'2019'}}"
+
+- name: dockerImagePrefix
+ value: 'rfsdr/'
+
+jobs:
+- job: build_image_linux
+ displayName: Build Docker Image
+ pool:
+ name: Drivers-NIBuildFarm-RFMIBUILD
+ demands:
+ - agent.os -equals Linux
+ - docker
+ strategy:
+ matrix: $[ variables.linuxDockerImages ]
+ steps:
+ - checkout: self
+ clean: true
+ - task: Docker@2
+ displayName: Build Image
+ inputs:
+ command: 'build'
+ Dockerfile: '$(Build.SourcesDirectory)/.ci/docker/$(dockerImageName).Dockerfile'
+ containerRegistry: 'Docker / Artifactory - rnd-builds-local'
+ repository: '$(dockerImagePrefix)$(dockerImageName)'
+ tags: $(Build.BuildNumber)
+ arguments: --no-cache --pull
+ - task: Docker@2
+ displayName: Push Image
+ inputs:
+ command: 'push'
+ containerRegistry: 'Docker / Artifactory - rnd-builds-local'
+ repository: '$(dockerImagePrefix)$(dockerImageName)'
+ tags: $(Build.BuildNumber)
+
+- job: test_image_linux
+ displayName: Test Docker Image
+ dependsOn: build_image_linux
+ pool:
+ name: Drivers-NIBuildFarm-RFMIBUILD
+ demands:
+ - agent.os -equals Linux
+ - docker
+ strategy:
+ matrix: $[ variables.linuxDockerImages ]
+ container:
+ image: '$(dockerImagePrefix)$(dockerImageName):$(Build.BuildNumber)'
+ endpoint: 'Docker / Artifactory - rnd-builds-local'
+ workspace:
+ clean: outputs
+ steps:
+ - checkout: self
+ clean: true
+ - script: |
+ cd $(Build.BinariesDirectory)
+ mkdir -p uhddev/build
+ cd uhddev/build
+ cmake $(Build.SourcesDirectory)/host
+ displayName: Test image with cmake uhd
+ - script: |
+ cd $(Build.BinariesDirectory)
+ mkdir -p uhddev/build-ninja
+ cd uhddev/build-ninja
+ cmake -G Ninja $(Build.SourcesDirectory)/host
+ displayName: Test image with cmake ninja uhd
+
+- job: build_image_win
+ displayName: Build Docker Image Windows
+ timeoutInMinutes: 120
+ pool:
+ name: de-dre-lab
+ demands:
+ - agent.os -equals Windows_NT
+ - docker
+ strategy:
+ matrix: $[ variables.winDockerImages ]
+ maxParallel: 2
+ steps:
+ - checkout: self
+ clean: true
+ - task: Docker@2
+ displayName: Build Image
+ inputs:
+ command: 'build'
+ Dockerfile: '$(Build.SourcesDirectory)/.ci/docker/$(dockerImageName).Dockerfile'
+ containerRegistry: 'Docker / Artifactory - rnd-builds-local'
+ repository: '$(dockerImagePrefix)$(dockerImageName)'
+ tags: $(Build.BuildNumber)
+ arguments: --no-cache --pull
+ - task: Docker@2
+ displayName: Push Image
+ inputs:
+ command: 'push'
+ containerRegistry: 'Docker / Artifactory - rnd-builds-local'
+ repository: '$(dockerImagePrefix)$(dockerImageName)'
+ tags: $(Build.BuildNumber)
+
+- job: test_image_win
+ displayName: Test Docker Image Windows
+ dependsOn: build_image_win
+ pool:
+ name: de-dre-lab
+ demands:
+ - agent.os -equals Windows_NT
+ - docker
+ strategy:
+ matrix: $[ variables.winDockerImages ]
+ container:
+ image: '$(dockerImagePrefix)$(dockerImageName):$(Build.BuildNumber)'
+ endpoint: 'Docker / Artifactory - rnd-builds-local'
+ workspace:
+ clean: outputs
+ steps:
+ - checkout: self
+ clean: true
+ - script: |
+ cd $(Build.BinariesDirectory)
+ mkdir uhddev\build
+ cd uhddev\build
+ cmake $(Build.SourcesDirectory)/host ^
+ -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALL_DIR%\scripts\buildsystems\vcpkg.cmake ^
+ -G "$(cmakeCompiler)" -A $(cmakeArch)
+ displayName: Test image with cmake uhd
+ - script: |
+ cd $(Build.BinariesDirectory)
+ cd uhddev\build
+ "C:\Program Files (x86)\Microsoft Visual Studio\$(vsYear)\Community\VC\Auxiliary\Build\vcvarsall.bat" $(vsArch)
+ displayName: Load Visual C++ Env
+
+- job: export_build_number
+ displayName: Export Image List to Artifacts
+ pool:
+ name: Drivers-NIBuildFarm-RFMIBUILD
+ demands: sh
+ steps:
+ - checkout: none
+ - script: |
+ cd $(Build.ArtifactStagingDirectory)
+ touch $(UHDPipelineDockerImageArtifactName)
+ echo "$(Build.BuildNumber)" > $(UHDPipelineDockerImageArtifactName)
+ echo "${{ variables.dockerImagePrefix }}" >> $(UHDPipelineDockerImageArtifactName)
+ echo "${{ variables.linuxDockerImages }}" >> $(UHDPipelineDockerImageArtifactName)
+ echo "${{ variables.winDockerImages }}" >> $(UHDPipelineDockerImageArtifactName)
+ displayName: Generate created image list
+ - task: PublishPipelineArtifact@1
+ inputs:
+ targetPath: $(Build.ArtifactStagingDirectory)
+ artifactName: $(UHDPipelineDockerImageArtifactName)
+ displayName: Upload image list artifact