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 }}