Initial Implementation: include (#10)
* Initial Implementation: include * Initial Implementation: lib details (#11) * Initial Implementation: lib details * Initial Implementation: lib (#12) * Initial Implementation: lib * Initial Implementation: source (#13) * Initial Implementation: source * Initial Implementation: samples (#14) * Initial Implementation: samples * Initial Implementation: tests (#15) * Initial Implementation: tests * Initial Implementation: scripts (#16) * Initial Implementation: scripts * Initial Implementation: cmake (#17) * Initial Implementation: cmake * Initial Implementation: top-level files (#18) * Initial Implementation: top-level files - clang-format - clang-tidy - cmake-format - ignore build and cache directories - main CMakeLists.txt - pyproject.toml (python formatting) - VERSION file * Initial Implementation: workflow (#19) * Fix unused variable - rocprofiler_register_warn_level
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
53a9547670
Коммит
fa4295db6b
@@ -0,0 +1,172 @@
|
||||
name: Continuous Integration
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
paths-ignore:
|
||||
- '*.md'
|
||||
pull_request:
|
||||
branches: [ main, develop ]
|
||||
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-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}
|
||||
Ссылка в новой задаче
Block a user