GitHub CI (#11)
* Continuous integration
* linux-ci on
* fix for parallel-overhead
* Updated CMAKE_INSTALL_PREFIX
* Updated installed boost libraries
* Dyninst updates fixing TBB install
* timemory + dyninst submodule updates
- fixes some timemory package option handling
- fixes dyninst libiberty handling
* Update dyninst submodule with libiberty fix
* dyninst submodule update with TBB internal build fixes
* Updated linux-ci + tests + timemeory + dyninst
- updated timemory submodule
- update dyninst submodule
- delay OnLoad implementation
- DYNINST_RT_API handling improvement
- CI for ubuntu-bionic in addition to focal
- CTest in CI
* Update TBB handling in CI
* Update dyninst with symLite fix
* Update dyninst submodule with ElfUtils-External fix
* Dyninst::ElfUtils fix
* Modified dyninst submodule TPL install
* Update dyninst submodule with improved interface libraries
* Fix to Dyninst::ElfUtils in dyninst submodule
* Updated CI build matrix + test install
* Updated CI
* CI stage updates
* Tweak
* Dyninst updates + RPATH for hosttrace exe
- hosttrace will rpath to dyninst
- Dyninst will statically link to boost by default
- Fixes to double init w/ MPI + runtime instrumentation
- minor cleanup to hosttrace
- hosttrace help exits with zero
- CI updates
* Dyninst + CI updates
* Removed ELFUTILS_BUILD_STATIC option in Dyninst
* Dyninst + visibility + roctracer + tests
- Dyninst submodule updates with dynamic pcontrol lib
- hosttrace visibility is hidden
- improved handling of DYNINST_API_RT in hosttrace
- roctracer::tear_down in finalize fixes issues with timemory
- throw error if cannot create perfetto output file
- roctracer_default_pool() safety guards
- resume calling roctracer_close_pool()
- fixed working dir of tests
- fixed env of tests (cmake and CI)
- simplified CI
* Removed stray CI if condition
* Disable hidden visibility for now
* ifdef for roctracer::tear_down + reenable hidden
* Better CI environment handling + dyninst packaging
* Fix for dyninst-package CI
* Fixes for cmake 3.15 issues with aliasing imported lib
* Fix to ubuntu-focal-dyninst-package
* Dyninst updates for packaging
- fixes issues with hard-coded paths to libraries after relocation via package installer
* Restrict CI to main and develop branches
[ROCm/rocprofiler-systems commit: 35ab6b0110]
This commit is contained in:
committed by
GitHub
parent
1e34cb9b27
commit
60145cd5c4
@@ -0,0 +1,327 @@
|
||||
name: linux-ci
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
pull_request:
|
||||
branches: [ main, develop ]
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
ELFUTILS_DOWNLOAD_VERSION: 0.183
|
||||
|
||||
jobs:
|
||||
ubuntu-focal:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
compiler: ['g++']
|
||||
mpi: [ '', 'libmpich-dev mpich', 'libopenmpi-dev openmpi-bin libfabric-dev' ]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install Packages
|
||||
run:
|
||||
sudo apt-get update &&
|
||||
sudo apt-get install -y build-essential python3-pip libtbb-dev libboost-{atomic,system,thread,date-time,filesystem,timer}-dev ${{ matrix.compiler }} ${{ matrix.mpi }} &&
|
||||
python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install 'cmake==3.15.3'
|
||||
|
||||
- name: Configure Env
|
||||
run:
|
||||
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV &&
|
||||
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV &&
|
||||
echo "/opt/hosttrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH &&
|
||||
echo "LD_LIBRARY_PATH=/opt/hosttrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
|
||||
|
||||
- name: Configure CMake
|
||||
run:
|
||||
cmake --version &&
|
||||
if [ -z "${{ matrix.mpi }}" ]; then USE_MPI=OFF; else USE_MPI=ON; fi &&
|
||||
cmake -B ${{ github.workspace }}/build
|
||||
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
||||
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
||||
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/hosttrace
|
||||
-DHOSTTRACE_USE_MPI=${USE_MPI}
|
||||
-DHOSTTRACE_USE_ROCTRACER=OFF
|
||||
-DHOSTTRACE_BUILD_DYNINST=ON
|
||||
-DDYNINST_BUILD_ELFUTILS=ON
|
||||
-DDYNINST_BUILD_LIBIBERTY=ON
|
||||
-DDYNINST_BUILD_SHARED_LIBS=ON
|
||||
-DDYNINST_BUILD_STATIC_LIBS=OFF
|
||||
|
||||
- name: Build
|
||||
run:
|
||||
cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1
|
||||
|
||||
- name: Install
|
||||
run:
|
||||
cmake --build ${{ github.workspace }}/build --target install --parallel 2
|
||||
|
||||
- name: Test
|
||||
working-directory: ${{ github.workspace }}/build
|
||||
run:
|
||||
ctest -V --output-log ${{ github.workspace }}/build/hosttrace-ctest.log
|
||||
|
||||
- name: Test Install
|
||||
run:
|
||||
hosttrace --help &&
|
||||
hosttrace -- sleep 1 &&
|
||||
hosttrace -o sleep.inst -- sleep &&
|
||||
./sleep.inst 1 &&
|
||||
rm ./sleep.inst
|
||||
|
||||
- name: Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ctest-log
|
||||
path: |
|
||||
${{ github.workspace }}/build/hosttrace-ctest.log
|
||||
|
||||
ubuntu-bionic:
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
compiler: ['g++-7', 'g++-8']
|
||||
mpi: [ '', 'libmpich-dev mpich', 'libopenmpi-dev openmpi-bin libfabric-dev' ]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install Packages
|
||||
run:
|
||||
sudo apt-get update &&
|
||||
sudo apt-get install -y build-essential python3-pip ${{ matrix.compiler }} ${{ matrix.mpi }} &&
|
||||
python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install 'cmake==3.15.3'
|
||||
|
||||
- name: Configure Env
|
||||
run:
|
||||
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV &&
|
||||
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV &&
|
||||
echo "/opt/hosttrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH &&
|
||||
echo "LD_LIBRARY_PATH=/opt/hosttrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
|
||||
|
||||
- name: Configure CMake
|
||||
run:
|
||||
cmake --version &&
|
||||
if [ -z "${{ matrix.mpi }}" ]; then USE_MPI=OFF; else USE_MPI=ON; fi &&
|
||||
cmake -B ${{ github.workspace }}/build
|
||||
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
||||
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
||||
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/hosttrace
|
||||
-DHOSTTRACE_USE_MPI=${USE_MPI}
|
||||
-DHOSTTRACE_USE_ROCTRACER=OFF
|
||||
-DHOSTTRACE_BUILD_DYNINST=ON
|
||||
-DDYNINST_BUILD_TBB=ON
|
||||
-DDYNINST_BUILD_BOOST=ON
|
||||
-DDYNINST_BUILD_ELFUTILS=ON
|
||||
-DDYNINST_BUILD_LIBIBERTY=ON
|
||||
|
||||
- name: Build
|
||||
run:
|
||||
cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1
|
||||
|
||||
- name: Install
|
||||
run:
|
||||
cmake --build ${{ github.workspace }}/build --target install --parallel 2
|
||||
|
||||
- name: Test
|
||||
working-directory: ${{ github.workspace }}/build
|
||||
run:
|
||||
ctest -V --output-log ${{ github.workspace }}/build/hosttrace-ctest.log
|
||||
|
||||
- name: Test Install
|
||||
run:
|
||||
hosttrace --help &&
|
||||
hosttrace -- sleep 1 &&
|
||||
hosttrace -o sleep.inst -- sleep &&
|
||||
./sleep.inst 1 &&
|
||||
rm ./sleep.inst
|
||||
|
||||
- name: Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ctest-log
|
||||
path: |
|
||||
${{ github.workspace }}/build/hosttrace-ctest.log
|
||||
|
||||
ubuntu-focal-external:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
compiler: ['g++-7', 'g++-8', 'g++-9', 'g++-10']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install Packages
|
||||
run:
|
||||
sudo apt-get update &&
|
||||
sudo apt-get install -y build-essential python3-pip libboost-{atomic,system,thread,date-time,filesystem,timer}-dev libtbb-dev libiberty-dev ${{ matrix.compiler }} &&
|
||||
sudo python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install 'cmake==3.15.3'
|
||||
|
||||
- name: Configure Env
|
||||
run:
|
||||
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV &&
|
||||
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV &&
|
||||
echo "CMAKE_PREFIX_PATH=/opt/opt/dyninst:/opt/elfutils:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV &&
|
||||
echo "/opt/hosttrace/bin:/opt/dyninst/bin:/opt/elfutils/bin:${HOME}/.local/bin" >> $GITHUB_PATH &&
|
||||
echo "LD_LIBRARY_PATH=/opt/hosttrace/lib:/opt/dyninst/lib:/opt/elfutils/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
|
||||
|
||||
- name: Install ElfUtils
|
||||
run:
|
||||
pushd external &&
|
||||
wget https://sourceware.org/elfutils/ftp/${ELFUTILS_DOWNLOAD_VERSION}/elfutils-${ELFUTILS_DOWNLOAD_VERSION}.tar.bz2 &&
|
||||
tar xjf elfutils-${ELFUTILS_DOWNLOAD_VERSION}.tar.bz2 &&
|
||||
pushd elfutils-${ELFUTILS_DOWNLOAD_VERSION} &&
|
||||
CFLAGS="-g -O2" ./configure --enable-install-elfh --prefix=/opt/elfutils --disable-libdebuginfod --disable-debuginfod &&
|
||||
make -j2 &&
|
||||
make install -j2 &&
|
||||
popd &&
|
||||
rm -rf elfutils*
|
||||
|
||||
- name: Install Dyninst
|
||||
run:
|
||||
cmake --version &&
|
||||
git submodule update --init external/dyninst &&
|
||||
cd external/dyninst &&
|
||||
cmake -B build
|
||||
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
||||
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
||||
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/dyninst &&
|
||||
cmake --build build --target all --parallel 2 &&
|
||||
cmake --build build --target install --parallel 2 &&
|
||||
rm -rf build
|
||||
|
||||
- name: Configure CMake
|
||||
run:
|
||||
cmake --version &&
|
||||
cmake -B ${{ github.workspace }}/build
|
||||
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
||||
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
||||
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/hosttrace
|
||||
-DHOSTTRACE_USE_MPI=OFF
|
||||
-DHOSTTRACE_USE_ROCTRACER=OFF
|
||||
|
||||
- name: Build
|
||||
run:
|
||||
cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1
|
||||
|
||||
- name: Install
|
||||
run:
|
||||
cmake --build ${{ github.workspace }}/build --target install --parallel 2
|
||||
|
||||
- name: Test
|
||||
working-directory: ${{ github.workspace }}/build
|
||||
run:
|
||||
ldd ./hosttrace &&
|
||||
./hosttrace --help &&
|
||||
ctest -V --output-log ${{ github.workspace }}/build/hosttrace-ctest.log
|
||||
|
||||
- name: Test Install
|
||||
run:
|
||||
ldd $(which hosttrace) &&
|
||||
hosttrace --help &&
|
||||
hosttrace -- sleep 1 &&
|
||||
hosttrace -o sleep.inst -- sleep &&
|
||||
./sleep.inst 1 &&
|
||||
rm ./sleep.inst
|
||||
|
||||
- name: Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ctest-log
|
||||
path: |
|
||||
${{ github.workspace }}/build/hosttrace-ctest.log
|
||||
|
||||
ubuntu-focal-dyninst-package:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
compiler: ['g++']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install Packages
|
||||
run:
|
||||
sudo apt-get update &&
|
||||
sudo apt-get install -y build-essential python3-pip ${{ matrix.compiler }} &&
|
||||
sudo python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install 'cmake==3.15.3'
|
||||
|
||||
- name: Configure Env
|
||||
run:
|
||||
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV &&
|
||||
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV &&
|
||||
echo "CMAKE_PREFIX_PATH=/opt/opt/dyninst:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV &&
|
||||
echo "/opt/hosttrace/bin:/opt/dyninst/bin:${HOME}/.local/bin" >> $GITHUB_PATH &&
|
||||
echo "LD_LIBRARY_PATH=/opt/hosttrace/lib:/opt/dyninst/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
|
||||
|
||||
- name: Install Dyninst
|
||||
run:
|
||||
cmake --version &&
|
||||
git submodule update --init external/dyninst &&
|
||||
cd external/dyninst &&
|
||||
cmake -B build
|
||||
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
||||
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
||||
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
|
||||
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/external/dyninst-install
|
||||
-DBUILD_TBB=ON
|
||||
-DBUILD_BOOST=ON
|
||||
-DBUILD_ELFUTILS=ON
|
||||
-DBUILD_LIBIBERTY=ON &&
|
||||
cmake --build build --target package --parallel 4 &&
|
||||
mkdir /opt/dyninst &&
|
||||
./build/Dyninst-*-Linux.sh --prefix=/opt/dyninst --exclude-subdir --skip-license &&
|
||||
rm -rf build
|
||||
|
||||
- name: Configure CMake
|
||||
run:
|
||||
cmake --version &&
|
||||
cmake -B ${{ github.workspace }}/build
|
||||
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
||||
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
||||
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/hosttrace
|
||||
-DHOSTTRACE_USE_MPI=OFF
|
||||
-DHOSTTRACE_USE_ROCTRACER=OFF
|
||||
|
||||
- name: Build
|
||||
run:
|
||||
cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1
|
||||
|
||||
- name: Install
|
||||
run:
|
||||
cmake --build ${{ github.workspace }}/build --target install --parallel 2
|
||||
|
||||
- name: Test
|
||||
working-directory: ${{ github.workspace }}/build
|
||||
run:
|
||||
ldd ./hosttrace &&
|
||||
./hosttrace --help &&
|
||||
ctest -V --output-log ${{ github.workspace }}/build/hosttrace-ctest.log
|
||||
|
||||
- name: Test Install
|
||||
run:
|
||||
ldd $(which hosttrace) &&
|
||||
hosttrace --help &&
|
||||
hosttrace -- sleep 1 &&
|
||||
hosttrace -o sleep.inst -- sleep &&
|
||||
./sleep.inst 1 &&
|
||||
rm ./sleep.inst
|
||||
|
||||
- name: Artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: ctest-log
|
||||
path: |
|
||||
${{ github.workspace }}/build/hosttrace-ctest.log
|
||||
Reference in New Issue
Block a user