name: rocprofiler-compute RHEL on: push: branches: - develop paths: - '.github/workflows/rocprofiler-compute-rhel.yml' - 'projects/rocprofiler-compute/**' - '!**/*.md' - '!**/*.rtf' - '!**/*.rst' - '!**/.markdownlint-ci2.yaml' - '!**/.readthedocs.yaml' - '!**/.spellcheck.local.yaml' - '!**/.wordlist.txt' - '!projects/rocprofiler-compute/docs/**' - '!projects/rocprofiler-compute/docker/**' pull_request: paths: - '.github/workflows/rocprofiler-compute-rhel.yml' - 'projects/rocprofiler-compute/**' - '!**/*.md' - '!**/*.rtf' - '!**/*.rst' - '!**/.markdownlint-ci2.yaml' - '!**/.readthedocs.yaml' - '!**/.spellcheck.local.yaml' - '!**/.wordlist.txt' - '!projects/rocprofiler-compute/docs/**' - '!projects/rocprofiler-compute/docker/**' workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: ROCM_VERSION: "7.2.0" CONTAINER_ROCM_VERSION: "7.2" jobs: build-rhel: # The type of runner that the job will run on # Using rocprofiler-systems images and later installing rocm, the official rocm images for al8 red hat variant are too large- this is a workaround. runs-on: ubuntu-latest container: image: ghcr.io/rocm/rocprofiler-rhel:${{ matrix.os-release }}-compute-ci-base strategy: fail-fast: false matrix: os-release: [ '8.10', '9.4' ] build-type: ['Release'] # Steps represent a sequence of tasks that will be executed as part of the job # Note- RHEL8 references python3.9 as python39, whereas RHEL9 default version is already 3.9, so we only need to call it as python3 steps: - name: Install baseline OS dependencies run: | yum clean all yum makecache yum -y install git if [ ${{ matrix.os-release }} == "8.10" ]; then yum -y install python39 yum -y install python39-devel alternatives --set python3 /usr/bin/python3.9 else yum -y install python3-devel fi yum -y install cmake3 yum -y install which yum -y install glibc-langpack-en yum -y install elfutils-devel pkgconf-pkg-config - name: Install ROCm Packages timeout-minutes: 30 uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 #v4.0.0 with: retry_wait_seconds: 30 timeout_minutes: 30 max_attempts: 3 command: | ROCM_MAJOR=$(echo ${{ env.ROCM_VERSION }} | sed 's/\./ /g' | awk '{print $1}') ROCM_MINOR=$(echo ${{ env.ROCM_VERSION }} | sed 's/\./ /g' | awk '{print $2}') ROCM_VERSN=$(( (${ROCM_MAJOR}*10000)+(${ROCM_MINOR}*100) )) if [ ${{ matrix.os-release }} == "8.10" ]; then yum install -y https://repo.radeon.com/amdgpu-install/${ROCM_MAJOR}.${ROCM_MINOR}/rhel/8.10/amdgpu-install-${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1.el8.noarch.rpm else yum install -y https://repo.radeon.com/amdgpu-install/${ROCM_MAJOR}.${ROCM_MINOR}/rhel/9.4/amdgpu-install-${ROCM_MAJOR}.${ROCM_MINOR}.${ROCM_VERSN}-1.el9.noarch.rpm fi yum install -y rocm-smi-lib roctracer-dev rocprofiler-dev rocprofiler-sdk rocm-device-libs hip-devel libpciaccess - name: Checkout uses: actions/checkout@v6 with: sparse-checkout: | projects/rocprofiler-compute shared/ctest set-safe-directory: true - name: Configure git safe directory run: git config --global --add safe.directory '*' - name: Install Python prereqs working-directory: projects/rocprofiler-compute run: | python3 -m pip install --ignore-installed -r requirements.txt python3 -m pip install --ignore-installed -r requirements-test.txt python3 -m pip install cmake - name: Configure and install working-directory: projects/rocprofiler-compute run: | mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/opt/rocprofiler-compute -DPYTEST_NUMPROCS=4 .. make install - name: CTest- Analyze Commands working-directory: projects/rocprofiler-compute run: | cd build ctest --verbose -R test_analyze_commands - name: CTest- Analyze Workloads working-directory: projects/rocprofiler-compute run: | cd build ctest --verbose -R test_analyze_workloads