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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
parameters:
demands: []
name: subtest
container:
ucx_targets:
ucx_1_14:
ucx_tag: v1.14.0
ucx_1_15:
ucx_tag: v1.15.x
ucx_1_16:
ucx_tag: v1.16.x
ucx_1_17:
ucx_tag: v1.17.x
ucx_1_18:
ucx_tag: v1.18.x
jobs:
- job: build_pr_${{ parameters.name }}
displayName: Build on ${{ parameters.name }}
workspace:
clean: outputs
pool:
name: MLNX
demands: ${{ parameters.demands }}
${{ if parameters.container }}:
container: ${{ parameters.container }}
steps:
- checkout: self
clean: true
fetchDepth: 1
retryCountOnTaskFailure: 5
- bash: |
set -eE
./autogen.sh
ucx_dir=$(System.DefaultWorkingDirectory)/ucx-install-current
./contrib/configure-release --enable-assertions --without-java --without-go --prefix=${ucx_dir}
make -s -j `nproc`
make install
displayName: Build ucx artifact
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(System.DefaultWorkingDirectory)/ucx-install-current'
artifactName: ucx_current_$(Build.BuildId)_${{ parameters.name }}
- job: test_wire_compat_${{ parameters.name }}
dependsOn: build_pr_${{ parameters.name }}
displayName: Test wire compatibility ${{ parameters.name }}
workspace:
clean: outputs
pool:
name: MLNX
demands: ${{ parameters.demands }}
strategy:
matrix: ${{ parameters.ucx_targets }}
${{ if parameters.container }}:
container: ${{ parameters.container }}
variables:
ucx_current: ucx_current_$(Build.BuildId)_${{ parameters.name }}
ucx_legacy: ucx_$(ucx_tag)_$(Build.BuildId)_${{ parameters.name }}
test_dir: $(System.DefaultWorkingDirectory)/$(ucx_legacy)/examples
steps:
- checkout: self
clean: true
fetchDepth: 1
retryCountOnTaskFailure: 5
- task: DownloadBuildArtifacts@0
displayName: Download UCX current
inputs:
artifactName: $(ucx_current)
downloadPath: $(System.DefaultWorkingDirectory)
- bash: chmod u+rwx $(System.DefaultWorkingDirectory)/$(ucx_current)/bin/ucx_info
- bash: |
set -eEx
source buildlib/az-helpers.sh
ucx_dir=$(System.DefaultWorkingDirectory)/$(ucx_legacy)
depth=1
git_clone_with_retry "$(ucx_tag)" "${ucx_dir}" "${depth}"
cd ${ucx_dir}
./autogen.sh
./contrib/configure-release --enable-assertions --prefix=${PWD} --without-java --without-go
make -s -j `nproc`
make install
cd ./examples
gcc -I${ucx_dir}/include -L${ucx_dir}/lib -o client_server ucp_client_server.c -lm -lucs -lucp
gcc -I${ucx_dir}/include -L${ucx_dir}/lib -o ucp_hworld ucp_hello_world.c -lm -lucs -lucp
displayName: Build ucx artifact
- bash: buildlib/tools/check_tls_perf_caps.sh
env:
UCX_PR_PATH: $(System.DefaultWorkingDirectory)/$(ucx_current)
UCX_LEGACY_PATH: $(System.DefaultWorkingDirectory)/$(ucx_legacy)
displayName: compare tls performance characteristics
condition: ne(variables.ucx_tag, 'v1.14.0')
- bash: |
export WIRE_COMPAT_STAGE_ID=1
buildlib/tools/test_wire_compat.sh $(test_dir)/client_server -a "-c tag"
env:
UCX_PR_LIB_PATH: $(System.DefaultWorkingDirectory)/$(ucx_current)/lib
UCX_LEGACY_LIB_PATH: $(System.DefaultWorkingDirectory)/$(ucx_legacy)/lib
AZP_AGENT_ID: $(AZP_AGENT_ID)
displayName: ucp_client_server with UCX $(ucx_tag)
condition: ne(variables.ucx_tag, 'v1.14.0')
timeoutInMinutes: 2
- bash: |
export WIRE_COMPAT_STAGE_ID=2
buildlib/tools/test_wire_compat.sh $(test_dir)/ucp_hworld -n
env:
UCX_PR_LIB_PATH: $(System.DefaultWorkingDirectory)/$(ucx_current)/lib
UCX_LEGACY_LIB_PATH: $(System.DefaultWorkingDirectory)/$(ucx_legacy)/lib
AZP_AGENT_ID: $(AZP_AGENT_ID)
displayName: ucp_hello_world with UCX $(ucx_tag)
timeoutInMinutes: 2
- bash: |
export WIRE_COMPAT_STAGE_ID=3
buildlib/tools/test_wire_compat.sh $(test_dir)/client_server -a "-c tag"
env:
UCX_TLS: ^sm
UCX_PR_LIB_PATH: $(System.DefaultWorkingDirectory)/$(ucx_current)/lib
UCX_LEGACY_LIB_PATH: $(System.DefaultWorkingDirectory)/$(ucx_legacy)/lib
AZP_AGENT_ID: $(AZP_AGENT_ID)
displayName: ucp_client_server (no sm) with UCX $(ucx_tag)
condition: ne(variables.ucx_tag, 'v1.14.0')
timeoutInMinutes: 2
- bash: |
export WIRE_COMPAT_STAGE_ID=4
buildlib/tools/test_wire_compat.sh $(test_dir)/ucp_hworld -n
env:
UCX_TLS: ^sm
UCX_PR_LIB_PATH: $(System.DefaultWorkingDirectory)/$(ucx_current)/lib
UCX_LEGACY_LIB_PATH: $(System.DefaultWorkingDirectory)/$(ucx_legacy)/lib
AZP_AGENT_ID: $(AZP_AGENT_ID)
displayName: ucp_hello_world (no sm) with UCX $(ucx_tag)
timeoutInMinutes: 2
|