aboutsummaryrefslogtreecommitdiffstats
path: root/.ci/templates/job-uhd-build-src.yml
blob: 366bb7509169df656bad81f1e0ab4856472a3abd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
parameters:
- name: 'toolset'
  type: string
  values:
  - make
  - ninja
  - msbuild

jobs:
- job: build_ctest_and_upload_uhd_${{ parameters.toolset }}
  displayName: ${{ parameters.toolset }}, ctest, and upload UHD
  dependsOn: get_latest_uhd_docker
  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'] ]
  pool:
    ${{ if eq(parameters.toolset, 'msbuild') }}:
      name: de-dre-lab
    ${{ if ne(parameters.toolset, 'msbuild') }}:
      name: Drivers-NIBuildFarm-RFMIBUILD
    demands:
      - docker
      - ${{ if eq(parameters.toolset, 'msbuild') }}:
        - Agent.OS -equals Windows_NT
      - ${{ if ne(parameters.toolset, 'msbuild') }}:
        - Agent.OS -equals Linux
  workspace:
    clean: outputs
  strategy:
    ${{ if eq(parameters.toolset, 'msbuild') }}:
      matrix: $[ variables.dockerImageMatrixWin ]
    ${{ if ne(parameters.toolset, 'msbuild') }}:
      matrix: $[ variables.dockerImageMatrixLin ]
  container:
    image: '$(dockerImagePrefix)$(DockerImageName):$(dockerBuildNumber)'
    endpoint: 'Docker / Artifactory - rnd-builds-local'
  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

  - ${{ 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
        cmakeCompiler: $(cmakeCompiler)
        cmakeArch: $(cmakeArch)
        vsArch: $(vsArch)
        vsYear: $(vsYear)

  - task: ArchiveFiles@2
    inputs:
      rootFolderOrFile: $(Build.BinariesDirectory)
      includeRootFolder: false
      archiveType: tar
      tarCompression: gz
      archiveFile: $(Build.ArtifactStagingDirectory)/$(dockerOSName)-${{ 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: '$(dockerOSName)-${{ parameters.toolset }}'
    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 $(dockerOSName)-${{ parameters.toolset }}
    displayName: Publish $(dockerOSName)-${{ parameters.toolset }} ctest results