Skip to content

Test

Test #129

Workflow file for this run

name: PR CI
on:
workflow_dispatch:
push:
branches:
- master
- main
- v*
paths:
- "configure.ac"
- "Makefile.am"
- "autogen.sh"
- "include/**"
- "m4/**"
- "src/**"
- "tests/**"
- "topology/**"
- ".github/workflows/**"
- ".github/actions/**"
pull_request:
paths:
- "configure.ac"
- "Makefile.am"
- "autogen.sh"
- "include/**"
- "m4/**"
- "src/**"
- "tests/**"
- "topology/**"
- ".github/workflows/**"
- ".github/actions/**"
env:
APT_PACKAGES: >-
build-essential
git
libhwloc-dev
make
# note, related to issue around actions/checkout@v4, linked below. This
# environment variable is also now needed, as of july 2024.
# ref: https://github.com/actions/runner/issues/2906#issuecomment-2208546951
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: 'true'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
amazonlinux:
strategy:
matrix:
sdk:
- cuda
- neuron
container:
- public.ecr.aws/amazonlinux/amazonlinux:2023
efainstaller:
- latest
- 1.25.0
include:
- efainstaller: latest
platform-aws: enable
- efainstaller: 1.25.0
platform-aws: disable
- container: public.ecr.aws/amazonlinux/amazonlinux:2023
displayname: al2023
efainstallerdir: ALINUX2023
nvidiadistro: amzn2023
configmanager: dnf config-manager
cudapackages: cuda-cudart-devel-12-6 cuda-crt-12-6
timeout-minutes: 60
runs-on: ubuntu-latest
container: ${{ matrix.container }}
name: ${{ matrix.displayname }}/${{ matrix.sdk }}/efa@${{ matrix.efainstaller }}/build+test
steps:
# note, do not bump to v4: https://github.com/actions/checkout/issues/1590
- uses: actions/checkout@v3
- name: Setup Environment
uses: ./.github/actions/setup-environment
with:
container-type: ${{ matrix.container }}
efa-installer-version: ${{ matrix.efainstaller }}
efa-installer-dir: ${{ matrix.efainstallerdir }}
sdk: ${{ matrix.sdk }}
cuda-packages: ${{ matrix.cudapackages }}
config-manager: ${{ matrix.configmanager }}
nvidia-distro: ${{ matrix.nvidiadistro }}
- name: Build, Test and Install
uses: ./.github/actions/configure-build-test
with:
sdk: ${{ matrix.sdk }}
platform-aws: ${{ matrix.platform-aws }}
distcheck:
runs-on: ubuntu-22.04
timeout-minutes: 60
strategy:
matrix:
cc-variant:
- latest
- legacy
cc:
- gcc
- clang
tracing:
- lttng
- none
sdk:
- cuda
- neuron
include:
- cc-variant: latest
cc: clang
cc-version: 18
- cc-variant: latest
cc: gcc
cc-version: 13
exclude:
# Remove some combinations to reduce matrix size
- cc: clang
sdk: neuron
tracing: lttng
name: u2204/${{ matrix.sdk }}/${{matrix.cc}}-${{matrix.cc-variant}}/build+test
steps:
- uses: actions/checkout@v4
- name: Configure Compilers
uses: ./.github/actions/configure-compiler
with:
cc: ${{ matrix.cc }}
cc-variant: ${{ matrix.cc-variant }}
cc-version: ${{ matrix.cc-version }}
- name: Install Base 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 update -y && sudo apt-get install -y wget lsb-release
repo="ubuntu$(lsb_release -r | cut -d':' -f2 | xargs | sed 's/[.]//g')"
wget https://developer.download.nvidia.com/compute/cuda/repos/${repo}/$(uname -m)/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update -y
sudo apt-get install -y cuda-cudart-dev-12-6 cuda-crt-12-6
- name: Install lttng
if: matrix.tracing == 'lttng'
run: |
sudo apt-get install -y liblttng-ust-dev
- name: Cache EFA Installer
id: cache-efa-installer
uses: actions/cache@v3
with:
path: aws-efa-installer-latest.tar.gz
key: efa-installer-latest
- name: Fetch and Install EFA Installer Dependencies
run: |
if [ "${{ steps.cache-efa-installer.outputs.cache-hit }}" != "true" ]; then
curl -O https://efa-installer.amazonaws.com/aws-efa-installer-latest.tar.gz
fi
tar -xf aws-efa-installer-*.tar.gz
pushd aws-efa-installer/
sudo ./efa_installer.sh -y --skip-kmod
popd
- name: Build, Test and Install
uses: ./.github/actions/configure-build-test
with:
sdk: ${{ matrix.sdk }}
platform-aws: enable
sudo: true
codechecker:
runs-on: ubuntu-22.04
needs: [distcheck]
timeout-minutes: 60
strategy:
matrix:
sdk:
- cuda
- neuron
name: CodeChecker - ${{ matrix.sdk }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.9'
- name: Cache Pip Packages
uses: actions/cache@v3
id: pip-cache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install Base 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 update -y && sudo apt-get install -y wget lsb-release
repo="ubuntu$(lsb_release -r | cut -d':' -f2 | xargs | sed 's/[.]//g')"
wget https://developer.download.nvidia.com/compute/cuda/repos/${repo}/$(uname -m)/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update -y
sudo apt-get install -y cuda-cudart-dev-12-6 cuda-crt-12-6
- name: Install cppcheck
run: |
sudo apt-get install -y cppcheck
- name: Cache EFA Installer
id: cache-efa-installer
uses: actions/cache@v3
with:
path: aws-efa-installer-latest.tar.gz
key: efa-installer-latest
- name: Fetch and Install EFA Installer Dependencies
run: |
if [ "${{ steps.cache-efa-installer.outputs.cache-hit }}" != "true" ]; then
curl -O https://efa-installer.amazonaws.com/aws-efa-installer-latest.tar.gz
fi
tar -xf aws-efa-installer-*.tar.gz
pushd aws-efa-installer/
sudo ./efa_installer.sh -y --skip-kmod
popd
- name: Run Configure
run: |
./autogen.sh
if [ "${{ matrix.sdk }}" == "neuron" ]; then
./configure --with-mpi=/opt/amazon/openmpi \
--with-libfabric=/opt/amazon/efa \
--enable-tests=yes \
--enable-werror=yes \
--enable-picky-compiler=yes \
--enable-platform-aws \
--enable-neuron
else
./configure --with-mpi=/opt/amazon/openmpi \
--with-libfabric=/opt/amazon/efa \
--enable-tests=yes \
--enable-werror=yes \
--enable-picky-compiler=yes \
--enable-platform-aws \
--with-cuda=/usr/local/cuda/
fi
- name: Run CodeChecker
uses: whisperity/codechecker-analysis-action@v1
id: codechecker
with:
build-command: make
ctu: true
config: .github/codechecker.yaml
install-custom: true
version: v6.23.1
llvm-version: '18'
- name: Save CodeChecker HTML output
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: 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