diff --git a/.github/workflows/distcheck.yaml b/.github/workflows/distcheck.yaml new file mode 100644 index 000000000..b0f00c268 --- /dev/null +++ b/.github/workflows/distcheck.yaml @@ -0,0 +1,56 @@ +name: Distribution checks +on: [push, pull_request] +env: + APT_PACKAGES: >- + build-essential + gcc + git + liblttng-ust-dev + make + pkg-config + APT_REPOS: >- + ppa:lttng/ppa +jobs: + linux: + runs-on: ubuntu-22.04 + strategy: + matrix: + 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 }} + - name: Install CUDA + run: | + sudo apt-get install -y nvidia-cuda-toolkit + - uses: actions/checkout@v4 + - name: Build Check + run: | + set -x + + # Install libfabric. 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 + pushd libfabric + ./autogen.sh + ./configure --prefix=$PWD/install CC=${{ matrix.cc }} + make -j 4; make install + popd + $PWD/libfabric/install/bin/fi_info -l + + # Run the unit tests and make sure distcheck is able to generate a + # tarball successfully. + ./autogen.sh + ./configure --with-libfabric=$PWD/libfabric/install --with-cuda=/usr/local/cuda/ CC=clang + make -j4; make check; make distcheck + - name: Upload build logs + if: failure() + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.cc }}-config.log + path: config.log