From 1eb517456e6ec486ebf28235ed566acfabac1fee Mon Sep 17 00:00:00 2001 From: Joseph Macaranas <145489236+amd-jmacaran@users.noreply.github.com> Date: Thu, 2 May 2024 15:27:06 -0400 Subject: [PATCH] Tagged builds of External CI components (#3078) * Tagged builds of External CI components Adding capability to kick off builds of ROCm components based on a tag ref, without the need of the yaml file in the corresponding repo that is used for pre-submit and on-submit builds. This unblocks the team from creating an initial set of pipelines to verify things work. Also made some improvements to the code structure and added support for more repos. --------- Co-authored-by: abhimeda Co-authored-by: alexxu-amd --- .azuredevops/README.md | 1 + .azuredevops/components/HIP.yml | 87 +++++++++++++------ .azuredevops/components/HIPIFY.yml | 52 +++++++++++ .azuredevops/components/MIVisionX.yml | 39 +++++++++ .azuredevops/components/ROCR-Runtime.yml | 54 ++++++++---- .../components/ROCT-Thunk-Interface.yml | 24 +++-- .azuredevops/components/ROCdbgapi.yml | 38 ++++++++ .azuredevops/components/copyHIP.yml | 8 +- .azuredevops/components/half.yml | 41 +++++++++ .azuredevops/components/hipFFT.yml | 47 ++++++++++ .azuredevops/components/hipSPARSE.yml | 40 +++++++++ .azuredevops/components/llvm-project.yml | 49 ++++++++--- .azuredevops/components/rccl.yml | 39 +++++++++ .azuredevops/components/rocALUTION.yml | 40 +++++++++ .azuredevops/components/rocDecode.yml | 47 ++++++++++ .azuredevops/components/rocFFT.yml | 48 ++++++++++ .azuredevops/components/rocPRIM.yml | 45 ++++++++++ .azuredevops/components/rocThrust.yml | 47 ++++++++++ .azuredevops/components/rocm-cmake.yml | 32 ++++--- .azuredevops/components/rocm-core.yml | 17 ++-- .../components/rocm_bandwidth_test.yml | 46 ++++++++++ .azuredevops/components/rocminfo.yml | 34 +++++--- .../components/rocprofiler-register.yml | 17 ++-- .azuredevops/components/rocprofiler.yml | 58 +++++++++++++ .azuredevops/components/rocr_debug_agent.yml | 42 +++++++++ .azuredevops/components/roctracer.yml | 61 +++++++++++++ .azuredevops/tag-builds/HIP.yml | 33 +++++++ .azuredevops/tag-builds/HIPIFY.yml | 28 ++++++ .azuredevops/tag-builds/MIVisionX.yml | 28 ++++++ .azuredevops/tag-builds/ROCR-Runtime.yml | 28 ++++++ .../tag-builds/ROCT-Thunk-Interface.yml | 28 ++++++ .azuredevops/tag-builds/ROCdbgapi.yml | 28 ++++++ .azuredevops/tag-builds/half.yml | 28 ++++++ .azuredevops/tag-builds/hipFFT.yml | 28 ++++++ .azuredevops/tag-builds/hipSPARSE.yml | 28 ++++++ .azuredevops/tag-builds/llvm-project.yml | 28 ++++++ .azuredevops/tag-builds/rccl.yml | 28 ++++++ .azuredevops/tag-builds/rocALUTION.yml | 28 ++++++ .azuredevops/tag-builds/rocDecode.yml | 28 ++++++ .azuredevops/tag-builds/rocFFT.yml | 28 ++++++ .azuredevops/tag-builds/rocPRIM.yml | 28 ++++++ .azuredevops/tag-builds/rocThrust.yml | 28 ++++++ .azuredevops/tag-builds/rocm-cmake.yml | 28 ++++++ .azuredevops/tag-builds/rocm-core.yml | 28 ++++++ .../tag-builds/rocm_bandwidth_test.yml | 28 ++++++ .azuredevops/tag-builds/rocminfo.yml | 28 ++++++ .../tag-builds/rocprofiler-register.yml | 28 ++++++ .azuredevops/tag-builds/rocprofiler.yml | 28 ++++++ .azuredevops/tag-builds/rocr_debug_agent.yml | 28 ++++++ .azuredevops/tag-builds/roctracer.yml | 28 ++++++ .../templates/steps/artifact-download.yml | 26 ++++-- .../templates/steps/artifact-upload.yml | 8 +- .azuredevops/templates/steps/build-script.yml | 2 +- .azuredevops/templates/steps/dependencies.yml | 16 ++-- .azuredevops/templates/steps/preamble.yml | 9 +- .azuredevops/variables-global.yml | 8 ++ 56 files changed, 1669 insertions(+), 130 deletions(-) create mode 100644 .azuredevops/components/HIPIFY.yml create mode 100644 .azuredevops/components/MIVisionX.yml create mode 100644 .azuredevops/components/ROCdbgapi.yml create mode 100644 .azuredevops/components/half.yml create mode 100644 .azuredevops/components/hipFFT.yml create mode 100644 .azuredevops/components/hipSPARSE.yml create mode 100644 .azuredevops/components/rccl.yml create mode 100644 .azuredevops/components/rocALUTION.yml create mode 100644 .azuredevops/components/rocDecode.yml create mode 100644 .azuredevops/components/rocFFT.yml create mode 100644 .azuredevops/components/rocPRIM.yml create mode 100644 .azuredevops/components/rocThrust.yml create mode 100644 .azuredevops/components/rocm_bandwidth_test.yml create mode 100644 .azuredevops/components/rocprofiler.yml create mode 100644 .azuredevops/components/rocr_debug_agent.yml create mode 100644 .azuredevops/components/roctracer.yml create mode 100644 .azuredevops/tag-builds/HIP.yml create mode 100644 .azuredevops/tag-builds/HIPIFY.yml create mode 100644 .azuredevops/tag-builds/MIVisionX.yml create mode 100644 .azuredevops/tag-builds/ROCR-Runtime.yml create mode 100644 .azuredevops/tag-builds/ROCT-Thunk-Interface.yml create mode 100644 .azuredevops/tag-builds/ROCdbgapi.yml create mode 100644 .azuredevops/tag-builds/half.yml create mode 100644 .azuredevops/tag-builds/hipFFT.yml create mode 100644 .azuredevops/tag-builds/hipSPARSE.yml create mode 100644 .azuredevops/tag-builds/llvm-project.yml create mode 100644 .azuredevops/tag-builds/rccl.yml create mode 100644 .azuredevops/tag-builds/rocALUTION.yml create mode 100644 .azuredevops/tag-builds/rocDecode.yml create mode 100644 .azuredevops/tag-builds/rocFFT.yml create mode 100644 .azuredevops/tag-builds/rocPRIM.yml create mode 100644 .azuredevops/tag-builds/rocThrust.yml create mode 100644 .azuredevops/tag-builds/rocm-cmake.yml create mode 100644 .azuredevops/tag-builds/rocm-core.yml create mode 100644 .azuredevops/tag-builds/rocm_bandwidth_test.yml create mode 100644 .azuredevops/tag-builds/rocminfo.yml create mode 100644 .azuredevops/tag-builds/rocprofiler-register.yml create mode 100644 .azuredevops/tag-builds/rocprofiler.yml create mode 100644 .azuredevops/tag-builds/rocr_debug_agent.yml create mode 100644 .azuredevops/tag-builds/roctracer.yml diff --git a/.azuredevops/README.md b/.azuredevops/README.md index 8c55cc125..83808a55d 100644 --- a/.azuredevops/README.md +++ b/.azuredevops/README.md @@ -8,6 +8,7 @@ ROCm-CI Azure DevOps Pipelines contains markup language files that orchestrate b - protected keywords such as tokens and passwords are kept as secrets within the Azure DevOps project - `/.azuredevops/components` - the sequence of templated steps for the job that checks out source, builds, packages, and runs tests for a ROCm repo - `/.azuredevops/scheduled` - the sequence of templated steps for jobs that are schedule-based and not tied to a specific ROCm repo +- `/.azuredevops/tag-builds` - yml files to orchestrate manual builds based on specific tags (e.g., releases) without needing the corresponding yaml file in the component's repo - `/.azuredevops/templates` - reusable yml files representing the templated steps that form the sequences in the above directories ### Per ROCm Repo diff --git a/.azuredevops/components/HIP.yml b/.azuredevops/components/HIP.yml index de46d149b..f25f9642a 100644 --- a/.azuredevops/components/HIP.yml +++ b/.azuredevops/components/HIP.yml @@ -1,10 +1,19 @@ parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' - name: aptPackages - type: string - default: 'libnuma-dev mesa-common-dev' + type: object + default: + - libnuma-dev + - mesa-common-dev - name: pipModules - type: string - default: 'CppHeaderParser' + type: object + default: + - CppHeaderParser # hip and clr are tightly-coupled # run this same template for both repos @@ -19,39 +28,61 @@ jobs: workspace: clean: all steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} # checkout triggering repo (either HIP or clr) - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} # if this is triggered by HIP repo, matching repo is clr # if this is triggered by clr repo, matching repo is HIP - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml parameters: checkoutRepo: matching_repo -# ${{ }} are resolved during compile-time -# so this next step is skipped completely until -# we define explicit aptPackages needed to install - - ${{ if parameters.aptPackages }}: - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml - parameters: - aptPackages: ${{ parameters.aptPackages }} - pipModules: ${{ parameters.pipModules }} # download tasks has built in 4x retry download count # these will download last passing build for that branch - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml - parameters: - componentName: llvm-project - branchName: amd-staging - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml - parameters: - componentName: ROCT-Thunk-Interface - branchName: master - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml - parameters: - componentName: ROCR-Runtime - branchName: master - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml - parameters: - componentName: rocprofiler-register - branchName: amd-mainline +# CI case: download latest default branch build + - ${{ if eq(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: llvm-project + branchName: amd-staging + pipelineId: $(llvm-project-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: ROCT-Thunk-Interface + branchName: master + pipelineId: $(roct-thunk-interface-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: ROCR-Runtime + branchName: master + pipelineId: $(rocr-runtime-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: rocprofiler-register + branchName: amd-mainline + pipelineId: $(rocprofiler-register-pipeline-id) +# manual build case: triggered by ROCm/ROCm repo + - ${{ if ne(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\llvm-project + pipelineId: $(llvm-project-tagged-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\ROCT-Thunk-Interface + pipelineId: $(roct-thunk-interface-tagged-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\ROCR-Runtime + pipelineId: $(rocr-runtime-tagged-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\rocprofiler-register + pipelineId: $(rocprofiler-register-tagged-pipeline-id) - script: 'ls -1R $(Agent.BuildDirectory)/rocm' displayName: 'Artifact listing' # compile clr diff --git a/.azuredevops/components/HIPIFY.yml b/.azuredevops/components/HIPIFY.yml new file mode 100644 index 000000000..16ae0ff41 --- /dev/null +++ b/.azuredevops/components/HIPIFY.yml @@ -0,0 +1,52 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - libnuma-dev + +jobs: +- job: HIPIFY + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} +# CI case: download latest default branch build + - ${{ if eq(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: llvm-project + branchName: amd-staging + pipelineId: $(llvm-project-pipeline-id) +# manual build case: triggered by ROCm/ROCm repo + - ${{ if ne(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\llvm-project + pipelineId: $(llvm-project-tagged-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm/llvm" + -DROCM_PATH="$(Agent.BuildDirectory)/rocm" + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/MIVisionX.yml b/.azuredevops/components/MIVisionX.yml new file mode 100644 index 000000000..b669150e6 --- /dev/null +++ b/.azuredevops/components/MIVisionX.yml @@ -0,0 +1,39 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + +jobs: +- job: MIVisionX + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} + - task: Bash@3 + displayName: 'Dependency Setup' + inputs: + targetType: inline + script: 'python3 MIVisionX-setup.py' + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/ROCR-Runtime.yml b/.azuredevops/components/ROCR-Runtime.yml index 612a0a930..66989fecc 100644 --- a/.azuredevops/components/ROCR-Runtime.yml +++ b/.azuredevops/components/ROCR-Runtime.yml @@ -1,7 +1,17 @@ parameters: -- name: aptPackages +- name: checkoutRepo type: string - default: 'libelf-dev g++ libdrm-dev libnuma-dev' + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - libelf-dev + - g++ + - libdrm-dev + - libnuma-dev jobs: - job: ROCR_Runtime @@ -13,23 +23,35 @@ jobs: workspace: clean: all steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -# ${{ }} are resolved during compile-time -# so this next step is run because -# we define explicit aptPackages needed to install - - ${{ if parameters.aptPackages }}: - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} +# CI case: download latest default branch build + - ${{ if eq(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml parameters: - aptPackages: ${{ parameters.aptPackages }} - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml - parameters: - componentName: llvm-project - branchName: amd-staging - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml - parameters: - componentName: ROCT-Thunk-Interface - branchName: master + componentName: llvm-project + branchName: amd-staging + pipelineId: $(llvm-project-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: ROCT-Thunk-Interface + branchName: master + pipelineId: $(roct-thunk-interface-pipeline-id) +# manual build case: triggered by ROCm/ROCm repo + - ${{ if ne(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\llvm-project + pipelineId: $(llvm-project-tagged-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\ROCT-Thunk-Interface + pipelineId: $(roct-thunk-interface-tagged-pipeline-id) - script: 'ls -1R $(Agent.BuildDirectory)/rocm' displayName: 'Artifact listing' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml diff --git a/.azuredevops/components/ROCT-Thunk-Interface.yml b/.azuredevops/components/ROCT-Thunk-Interface.yml index e43d5e8fc..c3d51f2e7 100644 --- a/.azuredevops/components/ROCT-Thunk-Interface.yml +++ b/.azuredevops/components/ROCT-Thunk-Interface.yml @@ -1,7 +1,15 @@ parameters: -- name: aptPackages +- name: checkoutRepo type: string - default: 'libnuma-dev libdrm-dev' + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - libnuma-dev + - libdrm-dev jobs: - job: ROCT_Thunk_Interface @@ -13,14 +21,12 @@ jobs: workspace: clean: all steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -# ${{ }} are resolved during compile-time -# so this next step is skipped completely until -# we define explicit aptPackages needed to install - - ${{ if parameters.aptPackages }}: - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml - parameters: - aptPackages: ${{ parameters.aptPackages }} + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/ROCdbgapi.yml b/.azuredevops/components/ROCdbgapi.yml new file mode 100644 index 000000000..dd930c7c3 --- /dev/null +++ b/.azuredevops/components/ROCdbgapi.yml @@ -0,0 +1,38 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + +jobs: +- job: ROCdbgapi + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_BUILD_TYPE=Release + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/copyHIP.yml b/.azuredevops/components/copyHIP.yml index 57bc8c091..af608d02d 100644 --- a/.azuredevops/components/copyHIP.yml +++ b/.azuredevops/components/copyHIP.yml @@ -1,10 +1,10 @@ parameters: -- name: aptPackages +- name: checkoutRepo type: string - default: 'libnuma-dev mesa-common-dev' -- name: pipModules + default: 'self' +- name: checkoutRef type: string - default: 'CppHeaderParser' + default: '' # hip and clr are tightly-coupled # run this same template for both repos diff --git a/.azuredevops/components/half.yml b/.azuredevops/components/half.yml new file mode 100644 index 000000000..1496d21ce --- /dev/null +++ b/.azuredevops/components/half.yml @@ -0,0 +1,41 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + +jobs: +- job: half + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_CXX_COMPILER=hipcc + -DCMAKE_BUILD_TYPE=Release + -DBUILD_CLIENTS=ON + -L + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/hipFFT.yml b/.azuredevops/components/hipFFT.yml new file mode 100644 index 000000000..f20dfc304 --- /dev/null +++ b/.azuredevops/components/hipFFT.yml @@ -0,0 +1,47 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - rocrand + - hiprand + - rocfft + - libboost-program-options-dev + - googletest + - libfftw3-dev + +jobs: +- job: hipFFT + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_CXX_COMPILER=hipcc + -DCMAKE_BUILD_TYPE=Release + -DBUILD_CLIENTS=ON + -L + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/hipSPARSE.yml b/.azuredevops/components/hipSPARSE.yml new file mode 100644 index 000000000..8f8d24bb6 --- /dev/null +++ b/.azuredevops/components/hipSPARSE.yml @@ -0,0 +1,40 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - libboost-program-options-dev + - googletest + - libfftw3-dev + - rocsparse + - git + +jobs: +- job: hipSPARSE + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-script.yml + parameters: + scriptExecutable: sudo ./install.sh + scriptParameters: -c -i -d diff --git a/.azuredevops/components/llvm-project.yml b/.azuredevops/components/llvm-project.yml index d5dfb1e45..4339f7626 100644 --- a/.azuredevops/components/llvm-project.yml +++ b/.azuredevops/components/llvm-project.yml @@ -1,27 +1,52 @@ parameters: -- name: aptPackages +- name: checkoutRepo type: string - default: 'libnuma-dev ninja-build ccache' + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - python3-pip + - libnuma-dev + - ninja-build + - ccache jobs: - job: llvm_project variables: - group: common - template: /.azuredevops/variables-global.yml - pool: ${{ variables.HIGH_END_BUILD_POOL }} + - name: HIP_DEVICE_LIB_PATH + value: '$(Build.BinariesDirectory)/amdgcn/bitcode' + pool: ${{ variables.CLOUD_BUILD_POOL }} workspace: clean: all steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/ccache.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -# ${{ }} are resolved during compile-time -# so this next step is skipped completely until -# we define explicit aptPackages needed to install - - ${{ if parameters.aptPackages }}: - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} +# CI case: download latest default branch build + - ${{ if eq(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml parameters: - aptPackages: ${{ parameters.aptPackages }} + componentName: rocm-cmake + branchName: develop + pipelineId: $(rocm-cmake-pipeline-id) + testFailuresOkay: true +# manual build case: triggered by ROCm/ROCm repo + - ${{ if ne(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\rocm-cmake + pipelineId: $(rocm-cmake-tagged-pipeline-id) + testFailuresOkay: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: componentName: rocm-llvm @@ -32,7 +57,6 @@ jobs: -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind" -DCLANG_ENABLE_AMDCLANG="ON" -DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -GNinja cmakeBuildDir: 'llvm/build' installDir: '$(Build.BinariesDirectory)/llvm' @@ -64,7 +88,6 @@ jobs: extraBuildFlags: >- -DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build" -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache cmakeBuildDir: 'amd/device-libs/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: @@ -72,7 +95,6 @@ jobs: extraBuildFlags: >- -DCMAKE_PREFIX_PATH="$(Build.SourcesDirectory)/llvm/build;$(Build.SourcesDirectory)/amd/device-libs/build" -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache cmakeBuildDir: 'amd/comgr/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml parameters: @@ -86,6 +108,5 @@ jobs: extraBuildFlags: >- -DCMAKE_BUILD_TYPE=Release -DHIPCC_BACKWARD_COMPATIBILITY=OFF - -GNinja cmakeBuildDir: 'amd/hipcc/build' - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rccl.yml b/.azuredevops/components/rccl.yml new file mode 100644 index 000000000..b94e9a10e --- /dev/null +++ b/.azuredevops/components/rccl.yml @@ -0,0 +1,39 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - libboost-program-options-dev + - googletest + - libfftw3-dev + - git + +jobs: +- job: rccl + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-script.yml + parameters: + scriptExecutable: ./install.sh + scriptParameters: -d -t diff --git a/.azuredevops/components/rocALUTION.yml b/.azuredevops/components/rocALUTION.yml new file mode 100644 index 000000000..aff32eae4 --- /dev/null +++ b/.azuredevops/components/rocALUTION.yml @@ -0,0 +1,40 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - libboost-program-options-dev + - libgtest-dev + - libfftw3-dev + - git + - mpich + +jobs: +- job: rocALUTION + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-script.yml + parameters: + scriptExecutable: ./install.sh + scriptParameters: -i -c -d diff --git a/.azuredevops/components/rocDecode.yml b/.azuredevops/components/rocDecode.yml new file mode 100644 index 000000000..10ff7a881 --- /dev/null +++ b/.azuredevops/components/rocDecode.yml @@ -0,0 +1,47 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - pkg-config + - ffmpeg + - libavcodec-dev + - libavformat-dev + - libavutil-dev + - libstdc++-12-dev + - mesa-amdgpu-multimedia-devel + +jobs: +- job: rocDecode + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_BUILD_TYPE=Release + -DBUILD_CLIENTS=ON + -L + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rocFFT.yml b/.azuredevops/components/rocFFT.yml new file mode 100644 index 000000000..e8f5f5836 --- /dev/null +++ b/.azuredevops/components/rocFFT.yml @@ -0,0 +1,48 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - rocrand + - hiprand + - libboost-program-options-dev + - libgtest-dev + - libfftw3-dev + +jobs: +- job: rocFFT + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: ${{ variables.CLOUD_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_CXX_COMPILER=hipcc + -DCMAKE_C_COMPILER=hipcc + -DCMAKE_PREFIX_PATH=/opt/rocm + -DCMAKE_BUILD_TYPE=Release + -DAMDGPU_TARGETS=gfx1100 + -DUSE_HIP_CLANG=ON + -DHIP_COMPILER=clang + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rocPRIM.yml b/.azuredevops/components/rocPRIM.yml new file mode 100644 index 000000000..2ea019ae3 --- /dev/null +++ b/.azuredevops/components/rocPRIM.yml @@ -0,0 +1,45 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - libgtest-dev + - git + +jobs: +- job: rocPRIM + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} +# ${{ }} are resolved during compile-time +# so this next step is skipped completely until +# we define explicit aptPackages needed to install + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml + parameters: + extraBuildFlags: >- + -DBUILD_BENCHMARK=ON + -DCMAKE_CXX_COMPILER=hipcc + -DAMDGPU_TARGETS=gfx1100 + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rocThrust.yml b/.azuredevops/components/rocThrust.yml new file mode 100644 index 000000000..cdfa229d4 --- /dev/null +++ b/.azuredevops/components/rocThrust.yml @@ -0,0 +1,47 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - hiprand + - rocprim-dev + - libboost-program-options-dev + - googletest + - libfftw3-dev + - git + +jobs: +- job: rocThrust + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -GNinja + -DCMAKE_CXX_COMPILER=hipcc + -DROCM_PATH=/opt/rocm + -DCMAKE_PREFIX_PATH=/opt/rocm + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml + diff --git a/.azuredevops/components/rocm-cmake.yml b/.azuredevops/components/rocm-cmake.yml index e911f90c8..94d6e85dd 100644 --- a/.azuredevops/components/rocm-cmake.yml +++ b/.azuredevops/components/rocm-cmake.yml @@ -1,10 +1,22 @@ parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' - name: aptPackages - type: string - default: 'doxygen doxygen-doc ninja-build python3-sphinx' + type: object + default: + - doxygen + - doxygen-doc + - ninja-build + - python3-sphinx - name: pipModules - type: string - default: 'cget ninja' + type: object + default: + - cget + - ninja jobs: - job: rocm_cmake @@ -16,15 +28,15 @@ jobs: workspace: clean: all steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} - 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/build-cmake.yml -# dependencies are only for testing, so done after compilation - - ${{ if parameters.aptPackages }}: - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml - parameters: - aptPackages: ${{ parameters.aptPackages }} - pipModules: ${{ parameters.pipModules }} # extra steps for ctest suite - script: | python -m pip install -r $(Build.SourcesDirectory)/docs/requirements.txt diff --git a/.azuredevops/components/rocm-core.yml b/.azuredevops/components/rocm-core.yml index ba5041ede..d78f26ce2 100644 --- a/.azuredevops/components/rocm-core.yml +++ b/.azuredevops/components/rocm-core.yml @@ -1,3 +1,11 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' + jobs: - job: rocm_core variables: @@ -10,13 +18,8 @@ jobs: steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -# ${{ }} are resolved during compile-time -# so this next step is skipped completely until -# we define explicit aptPackages needed to install - - ${{ if parameters.aptPackages }}: - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml - parameters: - aptPackages: ${{ parameters.aptPackages }} + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: extraBuildFlags: >- diff --git a/.azuredevops/components/rocm_bandwidth_test.yml b/.azuredevops/components/rocm_bandwidth_test.yml new file mode 100644 index 000000000..79f27dfa9 --- /dev/null +++ b/.azuredevops/components/rocm_bandwidth_test.yml @@ -0,0 +1,46 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build +- name: pipModules + type: object + default: + - CppHeaderParser + - argparse + +jobs: +- job: rocm_bandwidth_test + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_BUILD_TYPE=release + -DCMAKE_MODULE_PATH="$(Build.SourcesDirectory)/cmake_modules" + -DCMAKE_PREFIX_PATH=/opt/rocm + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rocminfo.yml b/.azuredevops/components/rocminfo.yml index d0c4ce87d..69783bedf 100644 --- a/.azuredevops/components/rocminfo.yml +++ b/.azuredevops/components/rocminfo.yml @@ -1,3 +1,11 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' + jobs: - job: rocminfo variables: @@ -10,17 +18,23 @@ jobs: steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -# ${{ }} are resolved during compile-time -# so this next step is skipped completely until -# we define explicit aptPackages needed to install - - ${{ if parameters.aptPackages }}: - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml - parameters: - aptPackages: ${{ parameters.aptPackages }} - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml parameters: - componentName: ROCR-Runtime - branchName: master + checkoutRepo: ${{ parameters.checkoutRepo }} +# CI case: download latest default branch build + - ${{ if eq(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: ROCR-Runtime + branchName: master + pipelineId: $(rocr-runtime-pipeline-id) + testFailuresOkay: true +# manual build case: triggered by ROCm/ROCm repo + - ${{ if ne(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\ROCR-Runtime + pipelineId: $(rocr-runtime-tagged-pipeline-id) + testFailuresOkay: true - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml parameters: extraBuildFlags: >- diff --git a/.azuredevops/components/rocprofiler-register.yml b/.azuredevops/components/rocprofiler-register.yml index 16e55de54..3f5e5c15e 100644 --- a/.azuredevops/components/rocprofiler-register.yml +++ b/.azuredevops/components/rocprofiler-register.yml @@ -1,3 +1,11 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' + jobs: - job: rocprofiler_register variables: @@ -10,12 +18,7 @@ jobs: steps: - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml -# ${{ }} are resolved during compile-time -# so this next step is skipped completely until -# we define explicit aptPackages needed to install - - ${{ if parameters.aptPackages }}: - - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml - parameters: - aptPackages: ${{ parameters.aptPackages }} + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rocprofiler.yml b/.azuredevops/components/rocprofiler.yml new file mode 100644 index 000000000..81060fc66 --- /dev/null +++ b/.azuredevops/components/rocprofiler.yml @@ -0,0 +1,58 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - libgtest-dev + - libdw-dev + - libsystemd-dev + - libelf-dev + - libnuma-dev + - libpciaccess-dev + - rocm-llvm-dev +- name: pipModules + type: object + default: + - pyyaml==5.3.1 + - Cppheaderparser + - websockets + - matplotlib + - lxml + - barectf + - pandas + +jobs: +- job: rocprofiler + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_MODULE_PATH="$(Build.SourcesDirectory)/cmake_modules;/opt/rocm/lib/cmake" + -DCMAKE_PREFIX_PATH="/opt/rocm" + -DENABLE_LDCONFIG=OFF + -DUSE_PROF_API=1 + -DGPU_TARGETS="gfx1100" + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/rocr_debug_agent.yml b/.azuredevops/components/rocr_debug_agent.yml new file mode 100644 index 000000000..0c7056866 --- /dev/null +++ b/.azuredevops/components/rocr_debug_agent.yml @@ -0,0 +1,42 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build + - libelf-dev + - libdw-dev + +jobs: +- job: rocr_debug_agent + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + - 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/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_BUILD_TYPE=Release + -DROCM_PATH=/opt/rocm + -DCMAKE_MODULE_PATH=/opt/rocm/lib/cmake + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/components/roctracer.yml b/.azuredevops/components/roctracer.yml new file mode 100644 index 000000000..4835b69c2 --- /dev/null +++ b/.azuredevops/components/roctracer.yml @@ -0,0 +1,61 @@ +parameters: +- name: checkoutRepo + type: string + default: 'self' +- name: checkoutRef + type: string + default: '' +- name: aptPackages + type: object + default: + - cmake + - ninja-build +- name: pipModules + type: object + default: + - CppHeaderParser + - argparse + +jobs: +- job: roctracer + variables: + - group: common + - template: /.azuredevops/variables-global.yml + pool: + vmImage: ${{ variables.LOW_END_BUILD_POOL }} + container: + image: ${{ variables.DOCKER_IMAGE_NAME }}:${{ variables.LATEST_DOCKER_VERSION }} + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/dependencies.yml + parameters: + aptPackages: ${{ parameters.aptPackages }} + pipModules: ${{ parameters.pipModules }} + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/preamble.yml + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml + parameters: + checkoutRepo: ${{ parameters.checkoutRepo }} +# CI case: download latest default branch build + - ${{ if eq(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: llvm-project + branchName: amd-staging + pipelineId: $(llvm-project-pipeline-id) +# manual build case: triggered by ROCm/ROCm repo + - ${{ if ne(parameters.checkoutRef, '') }}: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-download.yml + parameters: + componentName: \tag-builds\llvm-project + pipelineId: $(llvm-project-tagged-pipeline-id) + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml + parameters: + extraBuildFlags: >- + -DCMAKE_BUILD_TYPE=release + -DCMAKE_MODULE_PATH="$(Agent.BuildDirectory)/rocm/lib/cmake" + -DCMAKE_PREFIX_PATH="$(Agent.BuildDirectory)/rocm/llvm;$(Agent.BuildDirectory)/rocm" + -DENABLE_LDCONFIG=OFF + -DGPU_TARGETS="gfx1100" + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/artifact-upload.yml diff --git a/.azuredevops/tag-builds/HIP.yml b/.azuredevops/tag-builds/HIP.yml new file mode 100644 index 000000000..fa2443d6f --- /dev/null +++ b/.azuredevops/tag-builds/HIP.yml @@ -0,0 +1,33 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/HIP + ref: ${{ parameters.checkoutRef }} + - repository: matching_repo + type: github + endpoint: ROCm + name: ROCm/clr + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/HIP.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/HIPIFY.yml b/.azuredevops/tag-builds/HIPIFY.yml new file mode 100644 index 000000000..c83c500c7 --- /dev/null +++ b/.azuredevops/tag-builds/HIPIFY.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/HIPIFY + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/HIPIFY.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/MIVisionX.yml b/.azuredevops/tag-builds/MIVisionX.yml new file mode 100644 index 000000000..4a24cf08b --- /dev/null +++ b/.azuredevops/tag-builds/MIVisionX.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/MIVisionX + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/MIVisionX.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/ROCR-Runtime.yml b/.azuredevops/tag-builds/ROCR-Runtime.yml new file mode 100644 index 000000000..79956fb92 --- /dev/null +++ b/.azuredevops/tag-builds/ROCR-Runtime.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/ROCR-Runtime + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/ROCR-Runtime.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/ROCT-Thunk-Interface.yml b/.azuredevops/tag-builds/ROCT-Thunk-Interface.yml new file mode 100644 index 000000000..8ab46750c --- /dev/null +++ b/.azuredevops/tag-builds/ROCT-Thunk-Interface.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/ROCT-Thunk-Interface + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/ROCT-Thunk-Interface.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/ROCdbgapi.yml b/.azuredevops/tag-builds/ROCdbgapi.yml new file mode 100644 index 000000000..0729c5fab --- /dev/null +++ b/.azuredevops/tag-builds/ROCdbgapi.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/ROCdbgapi + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/ROCdbgapi.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/half.yml b/.azuredevops/tag-builds/half.yml new file mode 100644 index 000000000..3417b0c4f --- /dev/null +++ b/.azuredevops/tag-builds/half.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/half + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/half.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/hipFFT.yml b/.azuredevops/tag-builds/hipFFT.yml new file mode 100644 index 000000000..3891c51e5 --- /dev/null +++ b/.azuredevops/tag-builds/hipFFT.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/hipFFT + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/hipFFT.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/hipSPARSE.yml b/.azuredevops/tag-builds/hipSPARSE.yml new file mode 100644 index 000000000..a3583b7a9 --- /dev/null +++ b/.azuredevops/tag-builds/hipSPARSE.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/hipSPARSE + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/hipSPARSE.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/llvm-project.yml b/.azuredevops/tag-builds/llvm-project.yml new file mode 100644 index 000000000..3caa684ec --- /dev/null +++ b/.azuredevops/tag-builds/llvm-project.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/llvm-project + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/llvm-project.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rccl.yml b/.azuredevops/tag-builds/rccl.yml new file mode 100644 index 000000000..264467dc1 --- /dev/null +++ b/.azuredevops/tag-builds/rccl.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rccl + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rccl.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocALUTION.yml b/.azuredevops/tag-builds/rocALUTION.yml new file mode 100644 index 000000000..7c601f810 --- /dev/null +++ b/.azuredevops/tag-builds/rocALUTION.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocALUTION + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocALUTION.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocDecode.yml b/.azuredevops/tag-builds/rocDecode.yml new file mode 100644 index 000000000..815a678f7 --- /dev/null +++ b/.azuredevops/tag-builds/rocDecode.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocDecode + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocDecode.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocFFT.yml b/.azuredevops/tag-builds/rocFFT.yml new file mode 100644 index 000000000..5549093e1 --- /dev/null +++ b/.azuredevops/tag-builds/rocFFT.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocFFT + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocFFT.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocPRIM.yml b/.azuredevops/tag-builds/rocPRIM.yml new file mode 100644 index 000000000..a005d4d12 --- /dev/null +++ b/.azuredevops/tag-builds/rocPRIM.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocPRIM + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocPRIM.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocThrust.yml b/.azuredevops/tag-builds/rocThrust.yml new file mode 100644 index 000000000..ce40aa0ee --- /dev/null +++ b/.azuredevops/tag-builds/rocThrust.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocThrust + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocThrust.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocm-cmake.yml b/.azuredevops/tag-builds/rocm-cmake.yml new file mode 100644 index 000000000..aff205144 --- /dev/null +++ b/.azuredevops/tag-builds/rocm-cmake.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocm-cmake + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocm-cmake.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocm-core.yml b/.azuredevops/tag-builds/rocm-core.yml new file mode 100644 index 000000000..eddfee080 --- /dev/null +++ b/.azuredevops/tag-builds/rocm-core.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocm-core + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocm-core.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocm_bandwidth_test.yml b/.azuredevops/tag-builds/rocm_bandwidth_test.yml new file mode 100644 index 000000000..5a4f300dc --- /dev/null +++ b/.azuredevops/tag-builds/rocm_bandwidth_test.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocm_bandwidth_test + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocm_bandwidth_test.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocminfo.yml b/.azuredevops/tag-builds/rocminfo.yml new file mode 100644 index 000000000..8dcb7e9b7 --- /dev/null +++ b/.azuredevops/tag-builds/rocminfo.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocminfo + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocminfo.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocprofiler-register.yml b/.azuredevops/tag-builds/rocprofiler-register.yml new file mode 100644 index 000000000..01b1da25c --- /dev/null +++ b/.azuredevops/tag-builds/rocprofiler-register.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocprofiler-register + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocprofiler-register.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocprofiler.yml b/.azuredevops/tag-builds/rocprofiler.yml new file mode 100644 index 000000000..597eeb858 --- /dev/null +++ b/.azuredevops/tag-builds/rocprofiler.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocprofiler + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocprofiler.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/rocr_debug_agent.yml b/.azuredevops/tag-builds/rocr_debug_agent.yml new file mode 100644 index 000000000..8e3dc89b2 --- /dev/null +++ b/.azuredevops/tag-builds/rocr_debug_agent.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/rocr_debug_agent + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/rocr_debug_agent.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/tag-builds/roctracer.yml b/.azuredevops/tag-builds/roctracer.yml new file mode 100644 index 000000000..0fe7fca72 --- /dev/null +++ b/.azuredevops/tag-builds/roctracer.yml @@ -0,0 +1,28 @@ +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo + +parameters: +- name: checkoutRef + type: string + default: refs/tags/$(LATEST_RELEASE_TAG) + +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + - repository: release_repo + type: github + endpoint: ROCm + name: ROCm/roctracer + ref: ${{ parameters.checkoutRef }} + +trigger: none + +jobs: + - template: ${{ variables.CI_COMPONENT_PATH }}/roctracer.yml@pipelines_repo + parameters: + checkoutRepo: release_repo + checkoutRef: ${{ parameters.checkoutRef }} diff --git a/.azuredevops/templates/steps/artifact-download.yml b/.azuredevops/templates/steps/artifact-download.yml index 5cc9a4fb7..f5f36ed32 100644 --- a/.azuredevops/templates/steps/artifact-download.yml +++ b/.azuredevops/templates/steps/artifact-download.yml @@ -3,29 +3,37 @@ parameters: - name: componentName type: string default: '' -- name: branchName +- name: pipelineId type: string default: '' +- name: branchName + type: string + default: '$(Build.SourceBranchName)' # for tagged builds +- name: testFailuresOkay + type: boolean + default: false steps: -- task: DownloadBuildArtifacts@1 - displayName: Download ${{parameters.componentName }} +- task: DownloadPipelineArtifact@2 + displayName: Download ${{ parameters.componentName }} inputs: buildType: 'specific' project: ROCm-CI - pipeline: ${{parameters.componentName }} + pipeline: ${{ parameters.pipelineId }} specificBuildWithTriggering: true - branchName: ${{parameters.branchName }} + allowPartiallySucceededBuilds: ${{ parameters.testFailuresOkay }} + branchName: ${{ parameters.branchName }} + targetPath: '$(System.ArtifactsDirectory)' - task: ExtractFiles@1 - displayName: Extract ${{parameters.componentName }} + displayName: Extract ${{ parameters.componentName }} inputs: - archiveFilePatterns: '$(System.ArtifactsDirectory)/**/*.tar.xz' + archiveFilePatterns: '$(System.ArtifactsDirectory)/**/*.tar.gz' destinationFolder: '$(Agent.BuildDirectory)/rocm' cleanDestinationFolder: false overwriteExistingFiles: true - task: DeleteFiles@1 - displayName: Cleanup Compressed ${{parameters.componentName }} + displayName: Cleanup Compressed ${{ parameters.componentName }} inputs: SourceFolder: '$(System.ArtifactsDirectory)' - Contents: '/**/*.tar.xz' + Contents: '/**/*.tar.gz' RemoveDotFiles: true diff --git a/.azuredevops/templates/steps/artifact-upload.yml b/.azuredevops/templates/steps/artifact-upload.yml index ef7477da8..84dee7aad 100644 --- a/.azuredevops/templates/steps/artifact-upload.yml +++ b/.azuredevops/templates/steps/artifact-upload.yml @@ -16,8 +16,8 @@ steps: inputs: includeRootFolder: false archiveType: 'tar' - tarCompression: 'xz' - archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.artifactName }}.tar.xz' + tarCompression: 'gz' + archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.DefinitionName)_$(Build.SourceBranchName)_$(Build.BuildId)_$(Build.BuildNumber)_ubuntu2204_${{ parameters.artifactName }}.tar.gz' - task: DeleteFiles@1 displayName: 'Cleanup Staging Area' inputs: @@ -26,6 +26,8 @@ steps: RemoveDotFiles: true # then publish it - ${{ if parameters.publish }}: - - task: PublishBuildArtifacts@1 + - task: PublishPipelineArtifact@1 displayName: '${{ parameters.artifactName }} Publish' retryCountOnTaskFailure: 3 + inputs: + targetPath: '$(Build.ArtifactStagingDirectory)' diff --git a/.azuredevops/templates/steps/build-script.yml b/.azuredevops/templates/steps/build-script.yml index 0bb13e5bb..61782acf6 100644 --- a/.azuredevops/templates/steps/build-script.yml +++ b/.azuredevops/templates/steps/build-script.yml @@ -14,7 +14,7 @@ parameters: steps: - task: Bash@3 - displayName: '${{ parameters.componentName }} Test' + displayName: '${{ parameters.componentName }} Building via script' continueOnError: true inputs: targetType: inline diff --git a/.azuredevops/templates/steps/dependencies.yml b/.azuredevops/templates/steps/dependencies.yml index 9f18e46dd..73f226d64 100644 --- a/.azuredevops/templates/steps/dependencies.yml +++ b/.azuredevops/templates/steps/dependencies.yml @@ -2,11 +2,11 @@ parameters: # space-delimited list of packages to install via apt-get install command # TODO convert to string array and split with spaces - name: aptPackages - type: string - default: '' + type: object + default: [] - name: pipModules - type: string - default: '' + type: object + default: [] steps: - task: Bash@3 @@ -24,15 +24,15 @@ steps: inputs: targetType: inline script: sudo apt --yes --fix-broken install -- ${{ if parameters.aptPackages }}: +- ${{ if gt(length(parameters.aptPackages), 0) }}: - task: Bash@3 displayName: 'sudo apt-get install ...' inputs: targetType: inline - script: sudo apt-get --yes install ${{ parameters.aptPackages }} -- ${{ if parameters.pipModules }}: + script: sudo apt-get --yes install ${{ join(' ', parameters.aptPackages) }} +- ${{ if gt(length(parameters.pipModules), 0) }}: - task: Bash@3 displayName: 'pip install ...' inputs: targetType: inline - script: pip install ${{ parameters.pipModules }} + script: pip install ${{ join(' ', parameters.pipModules) }} diff --git a/.azuredevops/templates/steps/preamble.yml b/.azuredevops/templates/steps/preamble.yml index be2e7d3a7..9f76ff19b 100644 --- a/.azuredevops/templates/steps/preamble.yml +++ b/.azuredevops/templates/steps/preamble.yml @@ -2,10 +2,6 @@ # force cleanup, always # also display installed components and packages steps: -- task: DeleteFiles@1 - inputs: - SourceFolder: '$(Agent.BuildDirectory)/s' - Contents: '**/*' - task: Bash@3 displayName: 'apt installed list' inputs: @@ -18,6 +14,11 @@ steps: script: python3 --version - script: pip list displayName: 'list python packages' +- task: DeleteFiles@1 + displayName: 'Cleanup checkout space' + inputs: + SourceFolder: '$(Agent.BuildDirectory)/s' + Contents: '**/*' - task: DeleteFiles@1 displayName: 'Cleanup Staging Area' inputs: diff --git a/.azuredevops/variables-global.yml b/.azuredevops/variables-global.yml index ff695f51b..508b9f0a0 100644 --- a/.azuredevops/variables-global.yml +++ b/.azuredevops/variables-global.yml @@ -11,3 +11,11 @@ variables: value: ubuntu-22.04 - name: HIGH_END_BUILD_POOL value: rocm-ci_build_pool +- name: CLOUD_BUILD_POOL + value: rocm-ci_cloud_build_pool +- name: LATEST_RELEASE_TAG + value: rocm-6.1.0 +- name: DOCKER_IMAGE_NAME + value: rocm/dev-ubuntu-22.04 +- name: LATEST_DOCKER_VERSION + value: 6.1