diff --git a/.azuredevops/multinode-ci-nightly.yml b/.azuredevops/multinode-ci-nightly.yml new file mode 100644 index 0000000000..0c82aa3bfd --- /dev/null +++ b/.azuredevops/multinode-ci-nightly.yml @@ -0,0 +1,69 @@ +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo +- name: pytestFolder + value: '.azuredevops/tests/pytest' + +parameters: +- name: pytestList + type: object + default: + - HelloWorld + +trigger: none +pr: none +schedules: + - cron: "0 5 * 11-3 *" # 11 PM CST (November - March) + displayName: "Nightly Build (CST)" + branches: + include: + - develop + always: false + + - cron: "0 4 * 4-10 *" # 11 PM CDT (April - October) + displayName: "Nightly Build (CDT)" + branches: + include: + - develop + always: false + +jobs: +- job: rccl + timeoutInMinutes: 180 + pool: rocm-ci_rccl_pool + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml@pipelines_repo + parameters: + submoduleBehaviour: recursive + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml@pipelines_repo + parameters: + installEnabled: false + printDiskSpace: false + extraBuildFlags: >- + -DCMAKE_BUILD_TYPE=Release + -DBUILD_TESTS=ON + -DGPU_TARGETS=gfx942 + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml@pipelines_repo + parameters: + componentName: rccl + testDir: $(Build.SourcesDirectory)/build/test + testExecutable: './rccl-UnitTests' + testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' + - ${{ each pytestScript in parameters.pytestList }}: + - task: Bash@3 + displayName: Test ${{ pytestScript }} + continueOnError: true + inputs: + targetType: inline + workingDirectory: $(Build.SourcesDirectory)/$(pytestFolder) + script: pytest test_${{ pytestScript }}.py diff --git a/.azuredevops/multinode-ci-pr.yml b/.azuredevops/multinode-ci-pr.yml new file mode 100644 index 0000000000..304a7b269a --- /dev/null +++ b/.azuredevops/multinode-ci-pr.yml @@ -0,0 +1,74 @@ +resources: + repositories: + - repository: pipelines_repo + type: github + endpoint: ROCm + name: ROCm/ROCm + +variables: +- group: common +- template: /.azuredevops/variables-global.yml@pipelines_repo +- name: pytestFolder + value: '.azuredevops/tests/pytest' + +parameters: +- name: pytestList + type: object + default: + - HelloWorld + +trigger: none +pr: + autoCancel: true + branches: + include: + - develop + paths: + exclude: + - .github + - .jenkins + - docs + - '*.md' + - LICENSE.txt + - NOTICES.txt + drafts: false + +stages: +- stage: rcclStage + displayName: 'RCCL develop PR' + jobs: + - deployment: rccl_pr_approval + displayName: "CI Run Requires Approval" + environment: rccl + - job: rccl + timeoutInMinutes: 180 + pool: rocm-ci_rccl_pool + workspace: + clean: all + steps: + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/checkout.yml@pipelines_repo + parameters: + submoduleBehaviour: recursive + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/build-cmake.yml@pipelines_repo + parameters: + installEnabled: false + printDiskSpace: false + extraBuildFlags: >- + -DCMAKE_BUILD_TYPE=Release + -DBUILD_TESTS=ON + -DGPU_TARGETS=gfx942 + -GNinja + - template: ${{ variables.CI_TEMPLATE_PATH }}/steps/test.yml@pipelines_repo + parameters: + componentName: rccl + testDir: $(Build.SourcesDirectory)/build/test + testExecutable: './rccl-UnitTests' + testParameters: '--gtest_output=xml:./test_output.xml --gtest_color=yes' + - ${{ each pytestScript in parameters.pytestList }}: + - task: Bash@3 + displayName: Test ${{ pytestScript }} + continueOnError: true + inputs: + targetType: inline + workingDirectory: $(Build.SourcesDirectory)/$(pytestFolder) + script: pytest test_${{ pytestScript }}.py diff --git a/.azuredevops/tests/pytest/HelloWorld.py b/.azuredevops/tests/pytest/HelloWorld.py new file mode 100644 index 0000000000..3c2790e93c --- /dev/null +++ b/.azuredevops/tests/pytest/HelloWorld.py @@ -0,0 +1,5 @@ +import pytest + +def TestHelloWorld(): + greeting = "Hello, World!" + assert greeting == "Hello, World!"