Adding PC Sampling CI (#739)
* Create ci_pc_sampling.yml
* Update continuous_integration.yml
* Update ci_pc_sampling.yml
* Update ci_pc_sampling.yml
* Update continuous_integration.yml
[ROCm/rocprofiler-sdk commit: 8c03c8a914]
This commit is contained in:
zatwierdzone przez
GitHub
rodzic
b5d4745e4e
commit
e809612fff
@@ -0,0 +1,91 @@
|
|||||||
|
|
||||||
|
name: PC-Sampling Continuous Integration
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
branches: [ amd-staging, amd-mainline ]
|
||||||
|
paths:
|
||||||
|
- '*/*/*/pc_sampling*/**'
|
||||||
|
- '*/*/*/*/pc_sampling*'
|
||||||
|
- '*/*/*/pc_sampling*'
|
||||||
|
- '*/pc_sampling*/**'
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- '*/*/*/pc_sampling*/**'
|
||||||
|
- '*/*/*/*/pc_sampling*'
|
||||||
|
- '*/*/*/pc_sampling*'
|
||||||
|
- '*/pc_sampling*/**'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
env:
|
||||||
|
# TODO(jrmadsen): replace LD_RUNPATH_FLAG, GPU_LIST, etc. with internal handling in cmake
|
||||||
|
ROCM_PATH: "/opt/rocm"
|
||||||
|
GPU_LIST: "gfx900 gfx906 gfx908 gfx90a gfx940 gfx941 gfx942 gfx1030 gfx1100 gfx1101 gfx1102"
|
||||||
|
PATH: "/usr/bin:$PATH"
|
||||||
|
INCLUDED_TESTS: ".*pc_sampling.*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pc-sampling:
|
||||||
|
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
||||||
|
strategy:
|
||||||
|
fail-fast: true
|
||||||
|
matrix:
|
||||||
|
runner: [pc-sampling-runner-set]
|
||||||
|
os: [ubuntu-22.04]
|
||||||
|
build-type: [RelWithDebInfo]
|
||||||
|
ci-flags: ['--linter clang-tidy']
|
||||||
|
name-tag: ['']
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.runner }}
|
||||||
|
|
||||||
|
# define this for containers
|
||||||
|
env:
|
||||||
|
GIT_DISCOVERY_ACROSS_FILESYSTEM: 1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install requirements
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
git config --global --add safe.directory '*'
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y cmake clang-tidy g++-11 g++-12 python3-pip
|
||||||
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 10 --slave /usr/bin/g++ g++ /usr/bin/g++-11
|
||||||
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 --slave /usr/bin/g++ g++ /usr/bin/g++-12
|
||||||
|
python3 -m pip install -r requirements.txt
|
||||||
|
python3 -m pip install pytest
|
||||||
|
python3 -m pip install 'cmake>=3.22.0'
|
||||||
|
|
||||||
|
- name: List Files
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
which-realpath() { echo -e "\n$1 resolves to $(realpath $(which $1))"; echo "$($(which $1) --version &> /dev/stdout | head -n 1)"; }
|
||||||
|
for i in python python3 git cmake ctest; do which-realpath $i; done
|
||||||
|
ls -la
|
||||||
|
cat /sys/class/kfd/kfd/topology/nodes/*/gpu_id || true; /opt/rocm/bin/rocminfo | grep gfx
|
||||||
|
|
||||||
|
- name: Configure, Build, and Test
|
||||||
|
timeout-minutes: 30
|
||||||
|
shell: bash
|
||||||
|
run:
|
||||||
|
python3 ./source/scripts/run-ci.py -B build
|
||||||
|
--name ${{ github.repository }}-${{ github.ref_name }}-${{ matrix.os }}${{ matrix.name-tag }}
|
||||||
|
--build-jobs 16
|
||||||
|
--site $(echo $RUNNER_HOSTNAME)-$(/opt/rocm/bin/rocm_agent_enumerator | sed -n '2 p')
|
||||||
|
--gpu-targets ${{ env.GPU_LIST }}
|
||||||
|
${{ matrix.ci-flags }}
|
||||||
|
--
|
||||||
|
-DROCPROFILER_DEP_ROCMCORE=ON
|
||||||
|
-DROCPROFILER_BUILD_DOCS=ON
|
||||||
|
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-sdk
|
||||||
|
-DCPACK_GENERATOR='DEB;RPM;TGZ'
|
||||||
|
-DCPACK_PACKAGING_INSTALL_PREFIX="$(realpath /opt/rocm)"
|
||||||
|
-DPython3_EXECUTABLE=$(which python3)
|
||||||
|
--
|
||||||
|
-L ${{ env.INCLUDED_TESTS }}
|
||||||
@@ -23,6 +23,7 @@ env:
|
|||||||
ROCM_PATH: "/opt/rocm"
|
ROCM_PATH: "/opt/rocm"
|
||||||
GPU_LIST: "gfx900 gfx906 gfx908 gfx90a gfx940 gfx941 gfx942 gfx1030 gfx1100 gfx1101 gfx1102"
|
GPU_LIST: "gfx900 gfx906 gfx908 gfx90a gfx940 gfx941 gfx942 gfx1030 gfx1100 gfx1101 gfx1102"
|
||||||
PATH: "/usr/bin:$PATH"
|
PATH: "/usr/bin:$PATH"
|
||||||
|
EXCLUDED_TESTS: ".*pc_sampling.*"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
core:
|
core:
|
||||||
@@ -104,6 +105,8 @@ jobs:
|
|||||||
-DCPACK_GENERATOR='DEB;RPM;TGZ'
|
-DCPACK_GENERATOR='DEB;RPM;TGZ'
|
||||||
-DCPACK_PACKAGING_INSTALL_PREFIX="$(realpath /opt/rocm)"
|
-DCPACK_PACKAGING_INSTALL_PREFIX="$(realpath /opt/rocm)"
|
||||||
-DPython3_EXECUTABLE=$(which python3)
|
-DPython3_EXECUTABLE=$(which python3)
|
||||||
|
--
|
||||||
|
-LE ${{ env.EXCLUDED_TESTS }}
|
||||||
|
|
||||||
- name: Install
|
- name: Install
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
@@ -124,8 +127,8 @@ jobs:
|
|||||||
export LD_LIBRARY_PATH=/opt/rocprofiler-sdk/lib:${LD_LIBRARY_PATH}
|
export LD_LIBRARY_PATH=/opt/rocprofiler-sdk/lib:${LD_LIBRARY_PATH}
|
||||||
cmake --build build-samples --target all --parallel 16
|
cmake --build build-samples --target all --parallel 16
|
||||||
cmake --build build-tests --target all --parallel 16
|
cmake --build build-tests --target all --parallel 16
|
||||||
ctest --test-dir build-samples --output-on-failure
|
ctest --test-dir build-samples -LE ${{ env.EXCLUDED_TESTS }} --output-on-failure
|
||||||
ctest --test-dir build-tests --output-on-failure
|
ctest --test-dir build-tests -LE ${{ env.EXCLUDED_TESTS }} --output-on-failure
|
||||||
|
|
||||||
- name: Install Packages
|
- name: Install Packages
|
||||||
timeout-minutes: 5
|
timeout-minutes: 5
|
||||||
@@ -144,8 +147,8 @@ jobs:
|
|||||||
CMAKE_PREFIX_PATH=/opt/rocm cmake -B build-tests-deb /opt/rocm/share/rocprofiler-sdk/tests
|
CMAKE_PREFIX_PATH=/opt/rocm cmake -B build-tests-deb /opt/rocm/share/rocprofiler-sdk/tests
|
||||||
cmake --build build-samples-deb --target all --parallel 16
|
cmake --build build-samples-deb --target all --parallel 16
|
||||||
cmake --build build-tests-deb --target all --parallel 16
|
cmake --build build-tests-deb --target all --parallel 16
|
||||||
ctest --test-dir build-samples-deb --output-on-failure
|
ctest --test-dir build-samples-deb -LE ${{ env.EXCLUDED_TESTS }} --output-on-failure
|
||||||
ctest --test-dir build-tests-deb --output-on-failure
|
ctest --test-dir build-tests-deb -LE ${{ env.EXCLUDED_TESTS }} --output-on-failure
|
||||||
|
|
||||||
- name: Archive production artifacts
|
- name: Archive production artifacts
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@@ -236,6 +239,8 @@ jobs:
|
|||||||
--
|
--
|
||||||
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
||||||
-DPython3_EXECUTABLE=$(which python3)
|
-DPython3_EXECUTABLE=$(which python3)
|
||||||
|
--
|
||||||
|
-LE ${{ env.EXCLUDED_TESTS }}
|
||||||
|
|
||||||
- name: Configure, Build, and Test (Tests Code Coverage)
|
- name: Configure, Build, and Test (Tests Code Coverage)
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
@@ -251,6 +256,8 @@ jobs:
|
|||||||
--
|
--
|
||||||
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
||||||
-DPython3_EXECUTABLE=$(which python3)
|
-DPython3_EXECUTABLE=$(which python3)
|
||||||
|
--
|
||||||
|
-LE ${{ env.EXCLUDED_TESTS }}
|
||||||
|
|
||||||
- name: Configure, Build, and Test (Samples Code Coverage)
|
- name: Configure, Build, and Test (Samples Code Coverage)
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
@@ -266,6 +273,8 @@ jobs:
|
|||||||
--
|
--
|
||||||
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
||||||
-DPython3_EXECUTABLE=$(which python3)
|
-DPython3_EXECUTABLE=$(which python3)
|
||||||
|
--
|
||||||
|
-LE ${{ env.EXCLUDED_TESTS }}
|
||||||
|
|
||||||
- name: Save XML Code Coverage
|
- name: Save XML Code Coverage
|
||||||
id: save-coverage
|
id: save-coverage
|
||||||
@@ -342,15 +351,15 @@ jobs:
|
|||||||
# - unittests
|
# - unittests
|
||||||
# - integration-tests
|
# - integration-tests
|
||||||
#
|
#
|
||||||
ctest -N -LE 'samples|tests' -O ctest.mislabeled.log
|
ctest -N -LE 'samples|tests|${{ env.EXCLUDED_TESTS }}' -O ctest.mislabeled.log
|
||||||
grep 'Total Tests: 0' ctest.mislabeled.log
|
grep 'Total Tests: 0' ctest.mislabeled.log
|
||||||
#
|
#
|
||||||
# if following fails, then there is overlap between the labels.
|
# if following fails, then there is overlap between the labels.
|
||||||
# A test cannot both be a sample and (unit/integration) test.
|
# A test cannot both be a sample and (unit/integration) test.
|
||||||
#
|
#
|
||||||
ctest -N -O ctest.all.log
|
ctest -LE ${{ env.EXCLUDED_TESTS }} -N -O ctest.all.log
|
||||||
ctest -N -O ctest.samples.log -L samples
|
ctest -LE ${{ env.EXCLUDED_TESTS }} -N -O ctest.samples.log -L samples
|
||||||
ctest -N -O ctest.tests.log -L tests
|
ctest -LE ${{ env.EXCLUDED_TESTS }} -N -O ctest.tests.log -L tests
|
||||||
NUM_ALL=$(grep 'Total Tests:' ctest.all.log | awk '{print $NF}')
|
NUM_ALL=$(grep 'Total Tests:' ctest.all.log | awk '{print $NF}')
|
||||||
NUM_SAMPLE=$(grep 'Total Tests:' ctest.samples.log | awk '{print $NF}')
|
NUM_SAMPLE=$(grep 'Total Tests:' ctest.samples.log | awk '{print $NF}')
|
||||||
NUM_TEST=$(grep 'Total Tests:' ctest.tests.log | awk '{print $NF}')
|
NUM_TEST=$(grep 'Total Tests:' ctest.tests.log | awk '{print $NF}')
|
||||||
@@ -423,3 +432,5 @@ jobs:
|
|||||||
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
||||||
-DCMAKE_INSTALL_PREFIX="${{ env.ROCM_PATH }}"
|
-DCMAKE_INSTALL_PREFIX="${{ env.ROCM_PATH }}"
|
||||||
-DPython3_EXECUTABLE=$(which python3)
|
-DPython3_EXECUTABLE=$(which python3)
|
||||||
|
--
|
||||||
|
-LE ${{ env.EXCLUDED_TESTS }}
|
||||||
|
|||||||
Reference in New Issue
Block a user