parameters: - name: checkoutRepo type: string default: 'self' - name: checkoutRef type: string default: '' # set to true if doing full build of ROCm stack # and dependencies are pulled from same pipeline - name: aggregatePipeline type: boolean default: false - name: aptPackages type: object default: - python3-pip - cmake - ninja-build - pkg-config - ffmpeg - libavcodec-dev - libavformat-dev - libavutil-dev - libstdc++-12-dev - libva-amdgpu-dev - mesa-amdgpu-va-drivers - libdrm-dev - python3-pip - name: rocmDependencies type: object default: - rocm-cmake - llvm-project - ROCR-Runtime - clr - rocminfo - rocm-core - rocprofiler-register - name: rocmTestDependencies type: object default: - clr - llvm-project - rocminfo - rocprofiler-register - ROCR-Runtime - name: jobMatrix type: object default: testJobs: - gfx942: target: gfx942 - gfx90a: target: gfx90a jobs: - job: rocDecode_build variables: - group: common - template: /.azuredevops/variables-global.yml - name: ROCM_PATH value: $(Agent.BuildDirectory)/rocm pool: vmImage: ${{ variables.BASE_BUILD_POOL }} workspace: clean: all steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: aptPackages: ${{ parameters.aptPackages }} registerROCmPackages: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters: checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmDependencies }} aggregatePipeline: ${{ parameters.aggregatePipeline }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: extraBuildFlags: >- -DCMAKE_BUILD_TYPE=Release -GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml # parameters: # aptPackages: ${{ parameters.aptPackages }} # registerROCmPackages: true - ${{ each job in parameters.jobMatrix.testJobs }}: - job: rocDecode_test_${{ job.target }} dependsOn: rocDecode_build condition: and(succeeded(), eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), variables['Build.DefinitionName'])), eq(${{ parameters.aggregatePipeline }}, False) ) variables: - group: common - template: /.azuredevops/variables-global.yml - name: ROCM_PATH value: $(Agent.BuildDirectory)/rocm pool: name: ${{ job.target }}_test_pool workspace: clean: all steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: aptPackages: ${{ parameters.aptPackages }} registerROCmPackages: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-aqlprofile.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-rocm.yml parameters: checkoutRef: ${{ parameters.checkoutRef }} dependencyList: ${{ parameters.rocmTestDependencies }} gpuTarget: ${{ job.target }} - task: Bash@3 displayName: Build rocDecode tests inputs: targetType: inline script: | mkdir rocDecode-tests cd rocDecode-tests cmake $(Agent.BuildDirectory)/rocm/share/rocdecode/test - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters: componentName: rocDecode testDir: 'rocDecode-tests' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters: aptPackages: ${{ parameters.aptPackages }} registerROCmPackages: true environment: test gpuTarget: ${{ job.target }}