Update CI to test multiple python versions (#45)
* Update CI to test multiple python versions * Ensure numpy is installed * Handle lulesh with cmake < 3.16 * Fix typo * Bump minimum CMake version to 3.16 - CMake 3.15 has issue with PTL object library * Tweak CI test output
이 커밋은 다음에 포함됨:
@@ -47,7 +47,17 @@ jobs:
|
||||
apt-get install -y build-essential m4 autoconf libtool python3-pip ${{ matrix.compiler }} ${{ matrix.mpi }} &&
|
||||
python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install numpy &&
|
||||
python3 -m pip install 'cmake==3.16.3'
|
||||
python3 -m pip install 'cmake==3.16.3' &&
|
||||
for i in 6 7 8 9; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy; done
|
||||
|
||||
- name: Install Kokkos
|
||||
timeout-minutes: 5
|
||||
run:
|
||||
cd examples/lulesh/external/kokkos &&
|
||||
cmake -B build -DKokkos_ENABLE_OPENMP=ON -DKokkos_ENABLE_SERIAL=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_STANDARD=17 . &&
|
||||
cmake --build build --target all --parallel 2 &&
|
||||
cmake --build build --target install &&
|
||||
rm -rf build
|
||||
|
||||
- name: Configure Env
|
||||
run:
|
||||
@@ -71,6 +81,9 @@ jobs:
|
||||
-DOMNITRACE_USE_MPI=${USE_MPI}
|
||||
-DOMNITRACE_USE_HIP=OFF
|
||||
-DOMNITRACE_USE_PYTHON=ON
|
||||
-DOMNITRACE_PYTHON_VERSIONS="3.6;3.7;3.8;3.9"
|
||||
-DOMNITRACE_PYTHON_ROOT_DIRS="/opt/conda/envs/py3.6;/opt/conda/envs/py3.7;/opt/conda/envs/py3.8;/opt/conda/envs/py3.9"
|
||||
-DLULESH_BUILD_KOKKOS=OFF
|
||||
|
||||
- name: Build
|
||||
timeout-minutes: 45
|
||||
@@ -85,7 +98,10 @@ jobs:
|
||||
timeout-minutes: 45
|
||||
run:
|
||||
cd build &&
|
||||
ctest -V --output-log build/omnitrace-ctest-ubuntu-bionic.log --stop-on-failure
|
||||
ldd ./omnitrace &&
|
||||
./omnitrace --help &&
|
||||
ctest -V -N -O omnitrace-ctest-${{ env.GITHUB_JOB }}-commands.log &&
|
||||
ctest --output-on-failure --output-log omnitrace-ctest-${{ env.GITHUB_JOB }}.log --stop-on-failure
|
||||
|
||||
- name: Test Install
|
||||
timeout-minutes: 10
|
||||
|
||||
@@ -37,7 +37,8 @@ jobs:
|
||||
apt-get update &&
|
||||
apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev ${{ matrix.compiler }} libudev-dev libnuma-dev rocm-dev rocm-utils roctracer-dev rocprofiler-dev hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev libpapi-dev libopenmpi-dev &&
|
||||
python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install 'cmake==3.16.3'
|
||||
python3 -m pip install 'cmake==3.16.3' &&
|
||||
for i in 6 7 8 9; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy; done
|
||||
|
||||
- name: Configure Env
|
||||
run:
|
||||
@@ -83,7 +84,8 @@ jobs:
|
||||
cd build &&
|
||||
ldd ./omnitrace &&
|
||||
./omnitrace --help &&
|
||||
ctest -V --output-log omnitrace-ctest-ubuntu-focal-external-rocm.log --stop-on-failure
|
||||
ctest -V -N -O omnitrace-ctest-${{ env.GITHUB_JOB }}-commands.log &&
|
||||
ctest --output-on-failure --output-log omnitrace-ctest-${{ env.GITHUB_JOB }}.log --stop-on-failure
|
||||
|
||||
- name: Test Install
|
||||
timeout-minutes: 10
|
||||
|
||||
@@ -32,7 +32,8 @@ jobs:
|
||||
apt-get install -y build-essential m4 autoconf libtool python3-pip libiberty-dev clang libomp-dev ${{ matrix.compiler }} &&
|
||||
python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install numpy &&
|
||||
python3 -m pip install 'cmake==3.16.3'
|
||||
python3 -m pip install 'cmake==3.16.3' &&
|
||||
for i in 6 7 8 9; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy; done
|
||||
|
||||
- name: Configure Env
|
||||
run:
|
||||
@@ -56,6 +57,8 @@ jobs:
|
||||
-DOMNITRACE_USE_HIP=OFF
|
||||
-DOMNITRACE_USE_OMPT=OFF
|
||||
-DOMNITRACE_USE_PYTHON=ON
|
||||
-DOMNITRACE_PYTHON_VERSIONS="3.6;3.7;3.8;3.9"
|
||||
-DOMNITRACE_PYTHON_ROOT_DIRS="/opt/conda/envs/py3.6;/opt/conda/envs/py3.7;/opt/conda/envs/py3.8;/opt/conda/envs/py3.9"
|
||||
|
||||
- name: Build
|
||||
timeout-minutes: 45
|
||||
@@ -73,7 +76,8 @@ jobs:
|
||||
cd build &&
|
||||
ldd ./omnitrace &&
|
||||
./omnitrace --help &&
|
||||
ctest -V --output-log build/omnitrace-ctest-ubuntu-focal-external.log --stop-on-failure
|
||||
ctest -V -N -O omnitrace-ctest-${{ env.GITHUB_JOB }}-commands.log &&
|
||||
ctest --output-on-failure --output-log omnitrace-ctest-${{ env.GITHUB_JOB }}.log --stop-on-failure
|
||||
|
||||
- name: Test Install
|
||||
timeout-minutes: 10
|
||||
|
||||
@@ -74,7 +74,8 @@ jobs:
|
||||
timeout-minutes: 45
|
||||
working-directory: ${{ github.workspace }}/build
|
||||
run:
|
||||
ctest -V --output-log ${{ github.workspace }}/build/omnitrace-ctest-ubuntu-focal.log --stop-on-failure
|
||||
ctest -V -N -O ${{ github.workspace }}/build/omnitrace-ctest-${{ env.GITHUB_JOB }}-commands.log &&
|
||||
ctest --output-on-failure --output-log ${{ github.workspace }}/build/omnitrace-ctest-${{ env.GITHUB_JOB }}.log --stop-on-failure
|
||||
|
||||
- name: Test Install
|
||||
timeout-minutes: 10
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR AND CMAKE_CURRENT_SOURCE_DIR STREQUAL
|
||||
CMAKE_SOURCE_DIR)
|
||||
@@ -45,7 +45,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
||||
set(CMAKE_BUILD_TYPE
|
||||
RelWithDebInfo
|
||||
Release
|
||||
CACHE STRING "Build type" FORCE)
|
||||
else()
|
||||
set(VALID_BUILD_TYPES "Release" "RelWithDebInfo" "Debug" "MinSizeRel")
|
||||
|
||||
+11
-2
@@ -13,8 +13,9 @@ WORKDIR /tmp
|
||||
SHELL [ "/bin/bash", "-c" ]
|
||||
|
||||
ARG EXTRA_PACKAGES=""
|
||||
ARG ELFUTILS_DOWNLOAD_VERSION="0.183"
|
||||
ARG ELFUTILS_DOWNLOAD_VERSION="0.186"
|
||||
ARG NJOBS="12"
|
||||
ARG PYTHON_VERSIONS="6 7 8 9"
|
||||
|
||||
ENV PATH ${HOME}/.local/bin:${PATH}
|
||||
ENV LIBRARY_PATH /usr/local/lib:/usr/local/lib64:${LIBRARY_PATH}
|
||||
@@ -30,13 +31,21 @@ RUN apt-get update && \
|
||||
apt-get autoclean && \
|
||||
locale -a && \
|
||||
cd /tmp/dyninst && \
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_BOOST=ON -DBUILD_TBB=ON -DBUILD_ELFUTILS=ON -DBUILD_LIBIBERTY=ON && \
|
||||
cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_BOOST=ON -DBUILD_TBB=ON -DBUILD_ELFUTILS=ON -DBUILD_LIBIBERTY=ON -DELFUTILS_DOWNLOAD_VERSION=${ELFUTILS_DOWNLOAD_VERSION} && \
|
||||
cmake --build build --target all --parallel ${NJOBS} && \
|
||||
cmake --build build --target install --parallel ${NJOBS} && \
|
||||
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 no && \
|
||||
conda update -c defaults -n base conda && \
|
||||
for i in ${PYTHON_VERSIONS}; do conda create -n py3.${i} -c defaults python=3.${i} pip numpy; done && \
|
||||
conda clean -a -y && \
|
||||
cd /tmp && \
|
||||
shopt -s dotglob extglob && \
|
||||
rm -rf *
|
||||
|
||||
|
||||
ENV LC_ALL C.UTF-8
|
||||
WORKDIR /home
|
||||
SHELL [ "/bin/bash", "--login", "-c" ]
|
||||
|
||||
+12
-1
@@ -5,7 +5,8 @@ set -e
|
||||
: ${DISTRO:=ubuntu}
|
||||
: ${VERSIONS:=20.04 18.04}
|
||||
: ${NJOBS=$(nproc)}
|
||||
: ${ELFUTILS_VERSION:=0.183}
|
||||
: ${ELFUTILS_VERSION:=0.186}
|
||||
: ${PUSH:=0}
|
||||
|
||||
send-error()
|
||||
{
|
||||
@@ -39,6 +40,9 @@ do
|
||||
shift
|
||||
ELFUTILS_VERSION=${1}
|
||||
;;
|
||||
"--push")
|
||||
PUSH=1
|
||||
;;
|
||||
*)
|
||||
send-error "Unsupported argument at position $((${n} + 1)) :: ${1}"
|
||||
;;
|
||||
@@ -77,4 +81,11 @@ do
|
||||
--build-arg ELFUTILS_DOWNLOAD_VERSION=${ELFUTILS_VERSION}
|
||||
done
|
||||
|
||||
if [ "${PUSH}" -gt 0 ]; then
|
||||
for VERSION in ${VERSIONS}
|
||||
do
|
||||
verbose-run docker push jrmadsen/omnitrace-ci:${DISTRO}-${VERSION}
|
||||
done
|
||||
fi
|
||||
|
||||
verbose-run rm -rf ./dyninst-source
|
||||
|
||||
+11
-3
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
project(omnitrace-dyninst-examples LANGUAGES CXX)
|
||||
|
||||
@@ -10,6 +10,14 @@ add_subdirectory(parallel-overhead)
|
||||
add_subdirectory(user-api)
|
||||
add_subdirectory(openmp)
|
||||
|
||||
option(BUILD_SHARED_LIBS "Build dynamic libraries" ON)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.16 AND (NOT DEFINED LULESH_BUILD_KOKKOS
|
||||
OR LULESH_BUILD_KOKKOS))
|
||||
message(
|
||||
AUTHOR_WARNING
|
||||
"lulesh example cannot build Kokkos (requires CMake 3.16+, current version is ${CMAKE_VERSION})"
|
||||
)
|
||||
else()
|
||||
option(BUILD_SHARED_LIBS "Build dynamic libraries" ON)
|
||||
|
||||
add_subdirectory(lulesh)
|
||||
add_subdirectory(lulesh)
|
||||
endif()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
project(lulesh LANGUAGES C CXX)
|
||||
|
||||
@@ -19,7 +19,7 @@ set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
|
||||
set(CMAKE_BUILD_TYPE
|
||||
"RelWithDebInfo"
|
||||
"Release"
|
||||
CACHE STRING "CMake build type" FORCE)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
project(omnitrace-parallel-overhead LANGUAGES CXX)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
project(omnitrace-transpose LANGUAGES CXX)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
project(omnitrace-user-api LANGUAGES CXX)
|
||||
|
||||
|
||||
새 이슈에서 참조
사용자 차단