-
Notifications
You must be signed in to change notification settings - Fork 389
146 lines (146 loc) · 4.6 KB
/
pr-ci.yml
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
name: Build Checks
on: [push, pull_request]
env:
APT_PACKAGES: >-
abi-compliance-checker
abi-dumper
build-essential
debhelper
fakeroot
gcc
git
liblttng-ust-dev
libnl-3-200 libnl-3-dev libnl-route-3-200 libnl-route-3-dev
libnuma-dev
libudev-dev
uuid-dev
make
ninja-build
pandoc
pkg-config
python-is-python3
rpm
sparse
valgrind
wget
APT_REPOS: >-
ppa:lttng/ppa
OFI_PROVIDER_FLAGS: >-
--enable-efa=$PWD/rdma-core/build
--enable-mrail
--enable-psm3=$PWD/rdma-core/build
--enable-rxd
--enable-rxm
--enable-shm
--enable-tcp
--enable-udp
--enable-usnic
--enable-verbs=$PWD/rdma-core/build
RDMA_CORE_PATH: '$PWD/rdma-core/build'
RDMA_CORE_VERSION: v34.1
jobs:
linux:
runs-on: '${{ matrix.os }}'
strategy:
matrix:
os:
- ubuntu-20.04
- ubuntu-22.04
cc:
- gcc
- clang
fail-fast: false
steps:
- name: Install dependencies (Linux)
run: |
sudo apt-add-repository ${{ env.APT_REPOS }}
sudo apt-get update
sudo apt-get install -y ${{ env.APT_PACKAGES }}
- uses: actions/checkout@v4
- name: Build Check
run: |
set -x
git clone --depth 1 -b ${{ env.RDMA_CORE_VERSION }} https://github.com/linux-rdma/rdma-core.git
pushd rdma-core; bash build.sh; popd
export LD_LIBRARY_PATH="${{ env.RDMA_CORE_PATH }}/lib:$LD_LIBRARY_PATH"
./autogen.sh
./configure --prefix=$PWD/install ${{ env.OFI_PROVIDER_FLAGS }} CC=${{ matrix.cc }} --with-lttng
make -j 2 AM_CFLAGS="-Wall -Werror"; make install
DISTCHECK_CONFIGURE_FLAGS="${{ env.OFI_PROVIDER_FLAGS }}" make -j 2 distcheck
$PWD/install/bin/fi_info -l
- name: Upload build logs
if: failure()
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.os }}-${{ matrix.cc }}-config.log
path: config.log
hmem:
runs-on: ubuntu-20.04
steps:
- name: Install dependencies (Linux)
run: |
sudo apt-add-repository ${{ env.APT_REPOS }}
sudo apt-get update
sudo apt-get install -y ${{ env.APT_PACKAGES }}
- name: Install CUDA
run: |
sudo apt-get install -y nvidia-cuda-toolkit
- name: Install ROCm
run: |
echo "Installing ROCm SDK"
# TODO: Install ROCm dependencies and add --with-rocm to build in next step
- name: Install Ze
run: |
echo "Installing Ze SDK"
sudo apt-get install -y gpg-agent wget
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | sudo apt-key add -
sudo apt-add-repository 'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main'
sudo apt-get update
sudo apt-get install -y level-zero level-zero-dev
- uses: actions/checkout@v4
- name: HMEM Checks
run: |
set -x
# We could use 'upload-artifact' and persist the rdma-core build
# across jobs, but this is just as quick.
git clone --depth 1 -b ${{ env.RDMA_CORE_VERSION }} https://github.com/linux-rdma/rdma-core.git
pushd rdma-core; bash build.sh; popd
export LD_LIBRARY_PATH="${{ env.RDMA_CORE_PATH }}/lib:$LD_LIBRARY_PATH"
./autogen.sh
./configure --prefix=$PWD/install ${{ env.OFI_PROVIDER_FLAGS }} \
--with-cuda=/usr/local/cuda --with-ze \
--with-lttng \
CC=${{ matrix.cc }}
make -j 2 AM_CFLAGS="-Wall -Werror"; make install
$PWD/install/bin/fi_info -l
$PWD/install/bin/fi_info -c FI_HMEM
- name: Upload build logs
if: failure()
uses: actions/upload-artifact@v3
with:
name: hmem-config.log
path: config.log
macos:
runs-on: macos-13
steps:
- name: Install dependencies (Mac OS)
run: |
brew install automake
brew install libtool
- uses: actions/checkout@v4
- name: Build Check
run: |
./autogen.sh
./configure --prefix=$PWD/install
make -j 2; make install
$PWD/install/bin/fi_info -l
cd fabtests
./autogen.sh
./configure --with-libfabric=$PWD/../install
make -j2
- name: Upload build logs
if: failure()
uses: actions/upload-artifact@v3
with:
name: macos-config.log
path: config.log