e8aed4dbe4
* Fix packaging - Bump version to 0.3.0 - Set CMAKE_INSTALL_DEFAULT_COMPONENT at high level - Fix HOMEPAGE_URL - Update install components - Install tests directory - Create two separate packages: core and tests - Auto-generate deps based on shared libs (DEB and RPM) - Auto-generate list of shared libs provided by package (DEB and RPM) - cleanup cmake/rocprofiler_register_utilities.cmake * Enable sanitizer jobs * Update cmake/rocprofiler_register_memcheck.cmake - set env for LD_PRELOAD * Update tests for sanitizer jobs * Remove loading librocprofiler64.so - this library does not have rocprofiler_set_api_table symbol * Link to static fmt library
181 baris
5.7 KiB
YAML
181 baris
5.7 KiB
YAML
name: Continuous Integration
|
|
|
|
on:
|
|
push:
|
|
branches: [ amd-mainline, amd-staging ]
|
|
paths-ignore:
|
|
- '*.md'
|
|
pull_request:
|
|
branches: [ amd-mainline, amd-staging ]
|
|
paths-ignore:
|
|
- '*.md'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
ci:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
runner: ['ubuntu-latest']
|
|
compiler: ['clang-13', 'clang-14', 'clang-15', 'gcc-11', 'gcc-12']
|
|
ci-args: ['']
|
|
ci-tag: ['']
|
|
include:
|
|
- runner: 'ubuntu-latest'
|
|
compiler: 'gcc-12'
|
|
ci-args: '--coverage'
|
|
ci-tag: '-codecov'
|
|
- runner: 'ubuntu-latest'
|
|
compiler: 'clang-15'
|
|
ci-args: '--linter clang-tidy'
|
|
ci-tag: '-clang-tidy'
|
|
- runner: 'ubuntu-20.04'
|
|
compiler: 'gcc-9'
|
|
ci-args: ''
|
|
ci-tag: ''
|
|
- runner: 'ubuntu-20.04'
|
|
compiler: 'clang-10'
|
|
ci-args: ''
|
|
ci-tag: ''
|
|
- runner: 'ubuntu-latest'
|
|
compiler: 'gcc-12'
|
|
ci-args: '--memcheck ThreadSanitizer'
|
|
ci-tag: '-thread-sanitizer'
|
|
- runner: 'ubuntu-latest'
|
|
compiler: 'gcc-12'
|
|
ci-args: '--memcheck AddressSanitizer'
|
|
ci-tag: '-address-sanitizer'
|
|
- runner: 'ubuntu-latest'
|
|
compiler: 'gcc-12'
|
|
ci-args: '--memcheck LeakSanitizer'
|
|
ci-tag: '-leak-sanitizer'
|
|
# - runner: 'ubuntu-latest'
|
|
# compiler: 'gcc-12'
|
|
# ci-args: '--memcheck UndefinedBehaviorSanitizer'
|
|
# ci-tag: '-undefined-behavior-sanitizer'
|
|
|
|
runs-on: ${{ matrix.runner }}
|
|
|
|
env:
|
|
BUILD_TYPE: RelWithDebInfo
|
|
INSTALL_PREFIX: /opt/rocprofiler-register
|
|
PACKAGING_INSTALL_PREFIX: /opt/rocm
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Packages
|
|
timeout-minutes: 25
|
|
run: |
|
|
CC=${{ matrix.compiler }} &&
|
|
CXX=$(echo ${{ matrix.compiler }} | sed 's/clang-/clang++-/1' | sed 's/gcc-/g++-/1') &&
|
|
sudo apt-get update &&
|
|
sudo apt-get install -y build-essential python3 environment-modules ${{ matrix.compiler }} ${CXX} &&
|
|
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/${CC} 100 &&
|
|
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/${CXX} 100 &&
|
|
python3 -m pip install --upgrade pip &&
|
|
python3 -m pip install 'cmake==3.21.4'
|
|
|
|
- name: Setup GCov
|
|
timeout-minutes: 25
|
|
if: ${{ matrix.compiler == 'gcc-12' }}
|
|
run: |
|
|
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-12 100
|
|
|
|
- name: Setup Clang-Tidy
|
|
timeout-minutes: 25
|
|
if: ${{ matrix.compiler == 'clang-15' }}
|
|
run: |
|
|
sudo apt-get install -y clang-tidy-15
|
|
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-15 100
|
|
|
|
- name: Configure, Build, and Test
|
|
timeout-minutes: 115
|
|
shell: bash
|
|
run:
|
|
cmake --version &&
|
|
python3 ./scripts/run-ci.py -B build
|
|
--name ${{ github.repository_owner }}-${{ github.ref_name }}-${{ matrix.runner }}-${{ matrix.compiler }}${{ matrix.ci-tag }}
|
|
--build-jobs 2
|
|
--site GitHub
|
|
${{ matrix.ci-args }}
|
|
--disable-cdash
|
|
--
|
|
-DCMAKE_C_COMPILER=/usr/bin/cc
|
|
-DCMAKE_CXX_COMPILER=/usr/bin/c++
|
|
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }}
|
|
-DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_PREFIX }}
|
|
-DROCPROFILER_REGISTER_BUILD_TESTS=ON
|
|
-DROCPROFILER_REGISTER_BUILD_SAMPLES=ON
|
|
--
|
|
-VV
|
|
|
|
- name: Install
|
|
timeout-minutes: 10
|
|
run:
|
|
cmake --build build --target install --parallel 2
|
|
|
|
- name: CPack and Install
|
|
run: |
|
|
cd build
|
|
cpack -G STGZ
|
|
mkdir -p ${{ env.PACKAGING_INSTALL_PREFIX }}
|
|
./rocprofiler-register-*-Linux.sh --prefix=${{ env.PACKAGING_INSTALL_PREFIX }} --exclude-subdir --skip-license
|
|
|
|
- name: Test Install Modulefile
|
|
timeout-minutes: 15
|
|
shell: bash
|
|
run: |
|
|
set -v
|
|
source /usr/share/modules/init/$(basename ${SHELL})
|
|
module use ${{ env.INSTALL_PREFIX }}/share/modulefiles
|
|
module avail
|
|
module load rocprofiler-register
|
|
pushd tests
|
|
BUILD_DIR=${PWD}/build-rocp-reg-modulefile
|
|
cmake -B ${BUILD_DIR} .
|
|
cmake --build ${BUILD_DIR} --target all
|
|
rm -rf ${BUILD_DIR}
|
|
|
|
- name: Test Install Setup Env
|
|
timeout-minutes: 15
|
|
shell: bash
|
|
run: |
|
|
set -v
|
|
source ${{ env.INSTALL_PREFIX }}/share/rocprofiler-register/setup-env.sh
|
|
pushd samples/library-implementation
|
|
BUILD_DIR=${PWD}/build-rocp-reg-setup-env
|
|
cmake -B ${BUILD_DIR} .
|
|
cmake --build ${BUILD_DIR} --target all
|
|
rm -rf ${BUILD_DIR}
|
|
|
|
- name: Test Install CPack Modulefile
|
|
timeout-minutes: 15
|
|
shell: bash
|
|
run: |
|
|
set -v
|
|
source /usr/share/modules/init/$(basename ${SHELL})
|
|
module use ${{ env.PACKAGING_INSTALL_PREFIX }}/share/modulefiles
|
|
module avail
|
|
module load rocprofiler-register
|
|
pushd tests
|
|
BUILD_DIR=${PWD}/build-rocp-reg-modulefile-cpack
|
|
cmake -B ${BUILD_DIR} .
|
|
cmake --build ${BUILD_DIR} --target all
|
|
rm -rf ${BUILD_DIR}
|
|
|
|
- name: Test Install CPack Setup Env
|
|
timeout-minutes: 15
|
|
shell: bash
|
|
run: |
|
|
set -v
|
|
source ${{ env.PACKAGING_INSTALL_PREFIX }}/share/rocprofiler-register/setup-env.sh
|
|
pushd samples/library-implementation
|
|
BUILD_DIR=${PWD}/build-rocp-reg-setup-env-cpack
|
|
cmake -B ${BUILD_DIR} .
|
|
cmake --build ${BUILD_DIR} --target all
|
|
rm -rf ${BUILD_DIR}
|