CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
152 lines
6.3 KiB
YAML
152 lines
6.3 KiB
YAML
name: linux-ci
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, main, develop ]
|
|
pull_request:
|
|
branches: [ master, main, develop ]
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
BUILD_TYPE: Release
|
|
ASAN_OPTIONS: "detect_leaks=0"
|
|
|
|
jobs:
|
|
ci:
|
|
runs-on: ubuntu-${{ matrix.os-release }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- build_type: 'Debug'
|
|
build_libs: 'shared'
|
|
compiler: 'gcc'
|
|
extra_args: '--coverage --tbb --num-tasks=64'
|
|
extra_packages: 'clang-tidy'
|
|
standard: '11'
|
|
os-release: '20.04'
|
|
- build_type: 'RelWithDebInfo'
|
|
build_libs: 'shared'
|
|
compiler: 'clang-12'
|
|
extra_args: '--num-tasks=256 --sanitizer --sanitizer-type=leak --static-analysis'
|
|
extra_packages: 'clang-tidy-12'
|
|
standard: '11'
|
|
os-release: '20.04'
|
|
- build_type: 'RelWithDebInfo'
|
|
build_libs: 'shared'
|
|
compiler: 'clang-12'
|
|
extra_args: '--num-tasks=256 --tbb --sanitizer --sanitizer-type=address --static-analysis'
|
|
extra_packages: 'clang-tidy-12'
|
|
standard: '14'
|
|
os-release: '20.04'
|
|
- build_type: 'RelWithDebInfo'
|
|
build_libs: 'shared'
|
|
compiler: 'clang-12'
|
|
extra_args: '--num-tasks=256 --tbb --sanitizer --sanitizer-type=thread --static-analysis'
|
|
extra_cmake: '-DPTL_USE_LOCKS=ON'
|
|
extra_packages: 'clang-tidy-12'
|
|
standard: '17'
|
|
os-release: '20.04'
|
|
exclude:
|
|
# Ubuntu 20.04 (Focal)
|
|
- os-release: '20.04'
|
|
compiler: 'gcc-12'
|
|
# Ubuntu 22.04 (Jammy)
|
|
- os-release: '22.04'
|
|
compiler: 'gcc-7'
|
|
- os-release: '22.04'
|
|
compiler: 'gcc-8'
|
|
- os-release: '22.04'
|
|
compiler: 'clang-7'
|
|
- os-release: '22.04'
|
|
compiler: 'clang-8'
|
|
- os-release: '22.04'
|
|
compiler: 'clang-10'
|
|
build_type: ['Release']
|
|
build_libs: ['shared static']
|
|
compiler: ['gcc-7', 'gcc-8', 'gcc-9', 'gcc-10', 'gcc-11', 'gcc-12', 'clang-7', 'clang-8', 'clang-10', 'clang-11', 'clang-12']
|
|
extra_args: ['--num-tasks=256 --tbb']
|
|
standard: ['11', '17']
|
|
os-release: ['20.04', '22.04']
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install Conda
|
|
run:
|
|
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh &&
|
|
bash miniconda.sh -b -p /opt/conda &&
|
|
export PATH="/opt/conda/bin:${PATH}" &&
|
|
conda config --set always_yes yes --set changeps1 yes &&
|
|
conda update -c defaults -n base conda &&
|
|
conda create -n pyctest -c defaults -c conda-forge python=3.7 pyctest &&
|
|
source activate &&
|
|
conda activate pyctest
|
|
|
|
- name: Configure Repos
|
|
if: matrix.os-release == '20.04'
|
|
run:
|
|
DISTRIB_CODENAME=$(cat /etc/lsb-release | grep DISTRIB_CODENAME | awk -F '=' '{print $NF}') &&
|
|
sudo apt-get update &&
|
|
sudo apt-get install -y software-properties-common wget curl &&
|
|
sudo add-apt-repository -u -y ppa:ubuntu-toolchain-r/test &&
|
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - &&
|
|
echo "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-9 main" >> llvm-toolchain.list &&
|
|
echo "deb-src http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-9 main" >> llvm-toolchain.list &&
|
|
echo "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-10 main" >> llvm-toolchain.list &&
|
|
echo "deb-src http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-10 main" >> llvm-toolchain.list &&
|
|
echo "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-11 main" >> llvm-toolchain.list &&
|
|
echo "deb-src http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-11 main" >> llvm-toolchain.list &&
|
|
echo "deb http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-12 main" >> llvm-toolchain.list &&
|
|
echo "deb-src http://apt.llvm.org/${DISTRIB_CODENAME}/ llvm-toolchain-${DISTRIB_CODENAME}-12 main" >> llvm-toolchain.list &&
|
|
cat llvm-toolchain.list &&
|
|
sudo mv llvm-toolchain.list /etc/apt/sources.list.d/
|
|
|
|
- name: Configure Repos
|
|
if: matrix.os-release == '22.04'
|
|
run:
|
|
sudo apt-get update &&
|
|
sudo apt-get install -y software-properties-common wget curl &&
|
|
sudo add-apt-repository -u -y ppa:ubuntu-toolchain-r/test
|
|
|
|
- name: Install Repos
|
|
run:
|
|
export CC=${{ matrix.compiler }} &&
|
|
export CXX=$(echo "${{ matrix.compiler }}" | sed 's/gcc/g++/1' | sed 's/clang/clang++/1') &&
|
|
echo "C compiler is ${CC}" &&
|
|
echo "C++ compiler is ${CXX}" &&
|
|
sudo apt-get update &&
|
|
sudo apt-get install -y lcov libtbb-dev ${{ matrix.extra_packages }} &&
|
|
sudo apt-get install -y build-essential ${CC} ${CXX}
|
|
|
|
- name: Build and Test
|
|
run:
|
|
export PATH="/opt/conda/bin:${PATH}" &&
|
|
source activate &&
|
|
conda activate pyctest &&
|
|
export CMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}:${CONDA_PREFIX}" &&
|
|
export CC=$(which ${{ matrix.compiler }}) &&
|
|
export CXX=$(which $(echo "${{ matrix.compiler }}" | sed 's/gcc/g++/1' | sed 's/clang/clang++/1')) &&
|
|
echo "C compiler is ${CC}" &&
|
|
echo "C++ compiler is ${CXX}" &&
|
|
python ./pyctest-runner.py -SF
|
|
--pyctest-model=Continuous
|
|
--pyctest-site=GitHub-Linux
|
|
--pyctest-build-type=${{ matrix.build_type }}
|
|
--build-libs ${{ matrix.build_libs }}
|
|
${{ matrix.extra_args }}
|
|
-- -VV ${{ matrix.extra_ctest }}
|
|
-- -DCMAKE_INSTALL_PREFIX=${HOME}/ptl-install -DCMAKE_CXX_STANDARD=${{ matrix.standard }} ${{ matrix.extra_cmake }}
|
|
|
|
- name: Install
|
|
run:
|
|
export PATH="/opt/conda/bin:${PATH}" &&
|
|
source activate &&
|
|
conda activate pyctest &&
|
|
export CMAKE_PREFIX_PATH="${HOME}/ptl-install:${CMAKE_PREFIX_PATH}:${CONDA_PREFIX}" &&
|
|
cmake --build build-PTL --target install &&
|
|
cmake -B ${HOME}/ptl-examples-build ${PWD}/examples &&
|
|
cmake --build ${HOME}/ptl-examples-build --target all
|