parameters: - name: componentName type: string default: amdsmi - name: checkoutRepo type: string default: 'self' - name: checkoutRef type: string default: '' # monorepo related parameters - name: sparseCheckoutDir type: string default: '' - name: triggerDownstreamJobs type: boolean default: false - name: downstreamAggregateNames type: string default: '' - name: buildDependsOn type: object default: null - name: unifiedBuild type: boolean default: false # 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: - cmake - libdrm-dev - ninja-build - pkg-config - name: jobMatrix type: object default: buildJobs: - { os: ubuntu2204, packageManager: apt } - { os: ubuntu2404, packageManager: apt } - { os: almalinux8, packageManager: dnf } testJobs: - { os: ubuntu2204, packageManager: apt, target: gfx942 } - { os: ubuntu2204, packageManager: apt, target: gfx90a } jobs: - ${{ each job in parameters.jobMatrix.buildJobs }}: - job: ${{ parameters.componentName }}_build_${{ job.os }} pool: ${{ if eq(job.os, 'ubuntu2404') }}: vmImage: 'ubuntu-24.04' ${{ else }}: vmImage: 'ubuntu-22.04' ${{ if eq(job.os, 'almalinux8') }}: container: image: rocmexternalcicd.azurecr.io/manylinux228:latest endpoint: ContainerService3 variables: - group: common - template: /.azuredevops/variables-global.yml workspace: clean: all steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: aptPackages: ${{ parameters.aptPackages }} packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters: checkoutRepo: ${{ parameters.checkoutRepo }} sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: os: ${{ job.os }} useAmdclang: false extraBuildFlags: >- -DBUILD_TESTS=ON -GNinja - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/manifest.yml parameters: os: ${{ job.os }} componentName: ${{ parameters.componentName }} sparseCheckoutDir: ${{ parameters.sparseCheckoutDir }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml parameters: os: ${{ job.os }} componentName: ${{ parameters.componentName }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-links.yml # - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml # parameters: # aptPackages: ${{ parameters.aptPackages }} - ${{ if eq(parameters.unifiedBuild, False) }}: - ${{ each job in parameters.jobMatrix.testJobs }}: - job: ${{ parameters.componentName }}_test_${{ job.os }}_${{ job.target }} dependsOn: ${{ parameters.componentName }}_build_${{ job.os }} condition: and(succeeded(), eq(variables['ENABLE_${{ upper(job.target) }}_TESTS'], 'true'), not(containsValue(split(variables['DISABLED_${{ upper(job.target) }}_TESTS'], ','), '${{ parameters.componentName }}')), eq(${{ parameters.aggregatePipeline }}, False) ) variables: - group: common - template: /.azuredevops/variables-global.yml pool: ${{ job.target }}_test_pool workspace: clean: all steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies-other.yml parameters: aptPackages: ${{ parameters.aptPackages }} packageManager: ${{ job.packageManager }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/local-artifact-download.yml parameters: os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/gpu-diagnostics.yml parameters: runRocminfo: false - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters: componentName: ${{ parameters.componentName }} testDir: '$(Agent.BuildDirectory)' testExecutable: 'sudo ./rocm/share/amd_smi/tests/amdsmitst' testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' os: ${{ job.os }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/docker-container.yml parameters: aptPackages: ${{ parameters.aptPackages }} environment: test gpuTarget: ${{ job.target }}