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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
jobs:
# Perform test builds on relevant distributions.
- job: Distros
displayName: Build for distros
workspace:
clean: all
pool:
name: MLNX
demands:
- ucx_docker -equals yes
strategy:
matrix:
centos7:
CONTAINER: centos7
CONFIGURE_OPTS:
container: $[ variables['CONTAINER'] ]
steps:
- checkout: self
clean: true
fetchDepth: 100
- bash: |
set -eE
. buildlib/tools/common.sh
prepare_build
${WORKSPACE}/configure $(CONFIGURE_OPTS) --prefix=$(Build.Repository.LocalPath)/install
gcc -v
make -s -j `nproc`
make install
mkdir -p $(Build.Repository.LocalPath)/install/examples
cd ${WORKSPACE}/examples
gcc -lm -lucs -lucp -I$(Build.Repository.LocalPath)/install/include -L$(Build.Repository.LocalPath)/install/lib -o $(Build.Repository.LocalPath)/install/examples/hworld ucp_hello_world.c
displayName: Build ucx artifact
- task: CopyFiles@2
inputs:
sourceFolder: '$(Build.Repository.LocalPath)'
contents: |
install/**
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: ucx_bin_$(Build.BuildId)
- job: Test_wire_compatibility
dependsOn: Distros
displayName: Test wire compatibility
workspace:
clean: all
pool:
name: MLNX
demands:
- ucx_ci_without_interference -equals yes
strategy:
matrix:
ubuntu20:
CONTAINER: ubuntu2004
steps:
- checkout: none
clean: true
- task: DownloadBuildArtifacts@0
displayName: 'Download Build Artifacts'
inputs:
artifactName: ucx_bin_$(Build.BuildId)
downloadPath: $(System.DefaultWorkingDirectory)
- bash: chmod u+rwx $(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId) -R
- bash: |
set -Eex
port=$((10000 + (1000 * ${AZP_AGENT_ID})))
./bin/ucx_perftest -t tag_bw -p $port &
server_pid=$!
sleep 1;
./bin/ucx_perftest -t tag_bw -p $port 127.0.0.1 2>&1 | tee perf.txt
wait $server_pid
grep "Final:" perf.txt
displayName: Test ucx_perftest
workingDirectory: $(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId)/install
env:
LD_LIBRARY_PATH: $(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId)/install/lib:$LD_LIBRARY_PATH
- bash: |
set -Eex
git clone --depth 1 -b v1.11.x https://github.com/openucx/ucx.git $(System.DefaultWorkingDirectory)/ucx-1.11
cd $(System.DefaultWorkingDirectory)/ucx-1.11
./autogen.sh
./contrib/configure-release --prefix=$(System.DefaultWorkingDirectory)/ucx-1.11/install --enable-examples
make -s -j `nproc`
make install -s -j `nproc`
displayName: Build ucx-1.11 version
- bash: |
set -Eex
$(System.DefaultWorkingDirectory)/ucx-1.11/install/bin/ucx_info -v
env:
LD_LIBRARY_PATH: $(System.DefaultWorkingDirectory)/ucx-1.11/install/lib
displayName: Test ucx-1.11 version
- bash: |
set -Eex
port=$((10000 + (1000 * ${AZP_AGENT_ID})))
LD_LIBRARY_PATH=$UCX_V11_LIB_PATH $(System.DefaultWorkingDirectory)/ucx-1.11/examples/ucp_client_server -c tag -p $port &
server_pid=$!
sleep 5
LD_LIBRARY_PATH=$UCX_PR_LIB_PATH $(System.DefaultWorkingDirectory)/ucx-1.11/examples/ucp_client_server -c tag -p $port -a 127.0.0.1
kill -9 $server_pid
displayName: Test wire compatibility server v1.11 client master
env:
UCX_V11_LIB_PATH: $(System.DefaultWorkingDirectory)/ucx-1.11/install/lib
UCX_PR_LIB_PATH: $(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId)/install/lib
- bash: |
set -Eex
port=$((10000 + (1000 * ${AZP_AGENT_ID})))
LD_LIBRARY_PATH=$UCX_PR_LIB_PATH $(System.DefaultWorkingDirectory)/ucx-1.11/examples/ucp_client_server -c tag -p $port &
server_pid=$!
sleep 5
LD_LIBRARY_PATH=$UCX_V11_LIB_PATH $(System.DefaultWorkingDirectory)/ucx-1.11/examples/ucp_client_server -c tag -p $port -a 127.0.0.1
kill -9 $server_pid
env:
UCX_V11_LIB_PATH: $(System.DefaultWorkingDirectory)/ucx-1.11/install/lib
UCX_PR_LIB_PATH: $(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId)/install/lib
displayName: Test wire compatibility server on master client v1.11
- job: Test_compatibility
dependsOn: Distros
displayName: Test UCP_HELLO_WORLD
workspace:
clean: all
pool:
name: MLNX
demands:
- ucx_docker -equals yes
- ucx_amd -equals no
strategy:
matrix:
centos7_ib:
CONTAINER: centos7_ib
steps:
- checkout: none
clean: true
- task: DownloadBuildArtifacts@0
displayName: 'Download Build Artifacts'
inputs:
artifactName: ucx_bin_$(Build.BuildId)
downloadPath: $(System.DefaultWorkingDirectory)
- bash: chmod u+rwx $(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId) -R
- bash: |
set -Eex
git clone --depth 1 -b v1.11.x https://github.com/openucx/ucx.git $(System.DefaultWorkingDirectory)/ucx-1.11
cd $(System.DefaultWorkingDirectory)/ucx-1.11
./autogen.sh
./contrib/configure-release --prefix=$(System.DefaultWorkingDirectory)/ucx-1.11/install --enable-examples
make -s -j `nproc`
make install -s -j `nproc`
displayName: Build ucx-1.11 version
- bash: |
set -Eex
ldd $(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId)/install/examples/hworld
cmd_prefix="stdbuf -e0 -o0 timeout -s 9 120s"
export UCX_LOG_LEVEL=info # Print version and used transports
export UCX_TLS=^sm # Shared memory is not backward compatible
# Don't cross-connect RoCE devices
export UCX_IB_ROCE_LOCAL_SUBNET=y
export UCX_IB_ROCE_SUBNET_PREFIX_LEN=inf
env LD_LIBRARY_PATH=$UCX_PR_LIB_PATH \
${cmd_prefix} \
$(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId)/install/examples/hworld &
server_pid=$!
sleep 5
env LD_LIBRARY_PATH=$UCX_V11_LIB_PATH \
${cmd_prefix} \
$(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId)/install/examples/hworld -n localhost
env:
UCX_V11_LIB_PATH: $(System.DefaultWorkingDirectory)/ucx-1.11/install/lib
UCX_PR_LIB_PATH: $(System.DefaultWorkingDirectory)/ucx_bin_$(Build.BuildId)/install/lib
displayName: Test UCP_HELLO_WORLD wire compatibility server on master client v1.11
timeoutInMinutes: 5
|