forked from aws/aws-ofi-nccl
-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (118 loc) · 3.94 KB
/
distcheck.yaml
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
name: PR CI
on: [push, pull_request]
env:
APT_PACKAGES: >-
build-essential
clang
gcc
git
libhwloc-dev
make
jobs:
distcheck:
runs-on: ubuntu-22.04
strategy:
matrix:
cc:
- gcc
- clang
sdk:
- cuda
- neuron
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Install Dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y ${{ env.APT_PACKAGES }}
- name: Install CUDA SDK
if: matrix.sdk == 'cuda'
run: |
sudo apt-get install -y nvidia-cuda-toolkit
- name: Install Neuron SDK
if: matrix.sdk == 'neuron'
run: |
# Configure Linux for Neuron repository updates
sudo tee /etc/apt/sources.list.d/neuron.list > /dev/null << EOF
deb https://apt.repos.neuron.amazonaws.com jammy main
EOF
wget -qO - https://apt.repos.neuron.amazonaws.com/GPG-PUB-KEY-AMAZON-AWS-NEURON.PUB | sudo apt-key add -
sudo apt update -y
# Install Neuron Runtime
sudo apt-get install aws-neuronx-runtime-lib -y
- name: Install Libfabric
run: |
# We're just doing distchecks, so it is fine if we
# just grab the latest master and built a lean build.
git clone --depth 1 https://github.com/ofiwg/libfabric.git
pushd libfabric
./autogen.sh
./configure --prefix=$PWD/install \
--disable-sockets \
--disable-udp \
--disable-mrail \
--disable-opx \
CC=${{ matrix.cc }}
make -j $(nproc)
make install
popd
- name: Build Plugin
run: |
set -x
# actions/checkout@v4 would drop the plugin source in $PWD,
# so go ahead and build it.
./autogen.sh
if [ ${{ matrix.sdk }} == "cuda" ]
then
./configure --with-libfabric=$PWD/libfabric/install \
--with-cuda=/usr/local/cuda/ \
--enable-platform-aws \
CFLAGS="-fprofile-arcs -ftest-coverage" \
CC=${{ matrix.cc }}
else
./configure --with-libfabric=$PWD/libfabric/install \
--enable-neuron \
--enable-platform-aws \
CFLAGS="-fprofile-arcs -ftest-coverage" \
CC=${{ matrix.cc }}
fi
make -j $(nproc)
- name: Run Dist Check
run: make distcheck
- name: Upload build logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.cc }}-config.log
path: config.log
- uses: actions/setup-python@v5
if: matrix.cc == 'clang'
with:
python-version: '3.9'
- name: Run CodeChecker
if: matrix.cc == 'clang'
uses: whisperity/codechecker-analysis-action@v1
id: codechecker
with:
# clean and rebuild so that compile_commands.json can be detected
build-command: "make clean && make"
ctu: true
- name: Save CodeChecker HTML output.
if: matrix.cc == 'clang'
uses: actions/upload-artifact@v4
with:
name: "CodeChecker Bug Reports for ${{ matrix.sdk }}"
path: ${{ steps.codechecker.outputs.result-html-dir }}/*.html
- name: CodeChecker Pass Or Fail?
if: matrix.cc == 'clang' && ${{ steps.codechecker.outputs.warnings-in-diff == 'true' }}
shell: bash
run: |
echo "::error title=Static Analyzers Failed::Analysed commit(s) caused static analysis warnings"
exit 0
- name: Generate a code coverage report
uses: threeal/[email protected]
- name: Generate a code coverage report
uses: threeal/gcovr-action@xml-out
with:
xml-out: coverage.xml