diff --git a/.github/workflows/distcheck.yaml b/.github/workflows/distcheck.yaml index d9f1bf203..cd859e428 100644 --- a/.github/workflows/distcheck.yaml +++ b/.github/workflows/distcheck.yaml @@ -16,19 +16,35 @@ jobs: cc: - gcc - clang + sdk: + - cuda + - neuron fail-fast: false steps: - name: Install Dependencies run: | + sudo apt-get update -y sudo apt-get install -y ${{ env.APT_PACKAGES }} - - name: Install CUDA + - name: Install CUDA SDK + if: matrix.sdk == 'cuda' run: | sudo apt-get install -y nvidia-cuda-toolkit - - uses: actions/checkout@v4 - - name: Build and Distribution Checks + - name: Install Neuron SDK + if: matrix.sdk == 'neuron' run: | - set -x + # 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 + - uses: actions/checkout@v4 + - name: Install Libfabric + run: | # We're just doing distchecks, so it is fine if we # just grab the latest master. git clone --depth 1 https://github.com/ofiwg/libfabric.git @@ -39,17 +55,31 @@ jobs: 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 + # so go ahead and build it. ./autogen.sh - ./configure --with-libfabric=$PWD/libfabric/install --with-cuda=/usr/local/cuda/ CC=${{ matrix.cc }} + if [ ${{ matrix.sdk }} == "cuda" ] + then + ./configure --with-libfabric=$PWD/libfabric/install \ + --with-cuda=/usr/local/cuda/ \ + CC=${{ matrix.cc }} + else + ./configure --with-libfabric=$PWD/libfabric/install \ + --enable-neuron=/opt/aws/neuron/ \ + CC=${{ matrix.cc }} + fi make -j $(nproc) - # Run Unit tests - make check + - name: Run Unit Tests + run: make check + + - name: Run Dist Check + run: make distcheck - # Run dist tarball checks - make distcheck - name: Upload build logs if: failure() uses: actions/upload-artifact@v4