218f8bcbea
Fix for "SWDEV-479652" - Perfetto-based tests are failing.
Updated version of perfetto submodule to v46.0.
Modified Omnitrace code that uses Perfetto, so it can compile.
Modified the testing code, so it can run the version of trace_processor_shell provided (v46.0).
---------
Signed-off-by: Aleksandar Janicijevic <Aleksandar.Janicijevic@amd.com>
Co-authored-by: David Galiffi <David.Galiffi@amd.com>
[ROCm/rocprofiler-systems commit: 96d7b8f0ab]
162 строки
5.3 KiB
YAML
162 строки
5.3 KiB
YAML
name: OpenSUSE 15 (GCC, Python)
|
|
run-name: opensuse-15
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, develop, release/** ]
|
|
paths-ignore:
|
|
- '*.md'
|
|
- 'docs/**'
|
|
- 'source/docs/**'
|
|
- 'source/python/gui/**'
|
|
- '.github/workflows/docs.yml'
|
|
- '.github/workflows/cpack.yml'
|
|
- '.github/workflows/containers.yml'
|
|
- '.github/workflows/formatting.yml'
|
|
- 'docker/**'
|
|
pull_request:
|
|
branches: [ main, develop, release/** ]
|
|
paths-ignore:
|
|
- '*.md'
|
|
- 'docs/**'
|
|
- 'source/docs/**'
|
|
- 'source/python/gui/**'
|
|
- '.github/workflows/docs.yml'
|
|
- '.github/workflows/cpack.yml'
|
|
- '.github/workflows/containers.yml'
|
|
- '.github/workflows/formatting.yml'
|
|
- 'docker/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
OMNITRACE_CI: ON
|
|
OMNITRACE_TMPDIR: "%env{PWD}%/testing-tmp"
|
|
|
|
jobs:
|
|
opensuse:
|
|
runs-on: ubuntu-20.04
|
|
container:
|
|
image: jrmadsen/omnitrace:ci-base-opensuse-${{ matrix.os-release }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: ['g++']
|
|
os-release: [ '15.3', '15.4' ]
|
|
build-type: ['Release']
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install Packages
|
|
timeout-minutes: 25
|
|
uses: nick-fields/retry@v2
|
|
with:
|
|
retry_wait_seconds: 30
|
|
timeout_minutes: 25
|
|
max_attempts: 5
|
|
command: |
|
|
wget https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v46.0/linux-amd64/trace_processor_shell -P /opt/trace_processor/bin &&
|
|
chmod +x /opt/trace_processor/bin/trace_processor_shell
|
|
python3 -m pip install --upgrade pip &&
|
|
python3 -m pip install numpy perfetto dataclasses &&
|
|
python3 -m pip install 'cmake==3.21.4' &&
|
|
for i in 6 7 8 9 10; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy perfetto dataclasses; done
|
|
|
|
- name: Configure Env
|
|
run:
|
|
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV &&
|
|
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV &&
|
|
echo "/opt/omnitrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH &&
|
|
echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
|
|
|
|
- name: Configure, Build, and Test
|
|
timeout-minutes: 115
|
|
shell: bash
|
|
run:
|
|
git config --global --add safe.directory ${PWD} &&
|
|
cmake --version &&
|
|
python3 ./scripts/run-ci.py -B build
|
|
--name ${{ github.repository_owner }}-${{ github.ref_name }}-opensuse-${{ matrix.os-release }}-${{ matrix.compiler }}-nompi-python
|
|
--build-jobs 2
|
|
--site GitHub
|
|
--
|
|
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
|
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
|
-DCMAKE_INSTALL_PREFIX=/opt/omnitrace
|
|
-DOMNITRACE_BUILD_TESTING=ON
|
|
-DOMNITRACE_USE_MPI=OFF
|
|
-DOMNITRACE_USE_HIP=OFF
|
|
-DOMNITRACE_USE_OMPT=OFF
|
|
-DOMNITRACE_USE_PYTHON=ON
|
|
-DOMNITRACE_INSTALL_PERFETTO_TOOLS=OFF
|
|
-DOMNITRACE_USE_MPI_HEADERS=ON
|
|
-DOMNITRACE_PYTHON_PREFIX=/opt/conda/envs
|
|
-DOMNITRACE_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10;py3.11"
|
|
-DOMNITRACE_CI_MPI_RUN_AS_ROOT=ON
|
|
-DOMNITRACE_MAX_THREADS=64
|
|
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl"
|
|
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }}
|
|
|
|
- name: Install
|
|
timeout-minutes: 10
|
|
run:
|
|
cmake --build build --target install --parallel 2
|
|
|
|
- name: Test Install
|
|
timeout-minutes: 10
|
|
run: |
|
|
set -v
|
|
export OMNITRACE_DEBUG=ON
|
|
which omnitrace-avail
|
|
ldd $(which omnitrace-avail)
|
|
omnitrace-avail --help
|
|
omnitrace-avail -a
|
|
which omnitrace
|
|
ldd $(which omnitrace)
|
|
omnitrace-instrument --help
|
|
omnitrace-instrument -e -v 1 -o ls.inst --simulate -- ls
|
|
for i in $(find omnitrace-ls.inst-output -type f); do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done
|
|
omnitrace-instrument -e -v 1 -o ls.inst -- ls
|
|
omnitrace-run -- ./ls.inst
|
|
omnitrace-instrument -e -v 1 --simulate -- ls
|
|
for i in $(find omnitrace-ls-output -type f); do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done
|
|
omnitrace-instrument -e -v 1 -- ls
|
|
|
|
- name: Test User API
|
|
timeout-minutes: 10
|
|
run: |
|
|
set -v
|
|
./scripts/test-find-package.sh --install-dir /opt/omnitrace
|
|
|
|
- name: CTest Artifacts
|
|
if: failure()
|
|
continue-on-error: True
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ctest-${{ github.job }}-${{ strategy.job-index }}-log
|
|
path: |
|
|
build/*.log
|
|
|
|
- name: Data Artifacts
|
|
if: failure()
|
|
continue-on-error: True
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: data-${{ github.job }}-${{ strategy.job-index }}-files
|
|
path: |
|
|
build/omnitrace-tests-config/*.cfg
|
|
build/omnitrace-tests-output/**/*.txt
|
|
build/omnitrace-tests-output/**/*-instr*.json
|
|
|
|
- name: Kill Perfetto
|
|
if: success() || failure()
|
|
continue-on-error: True
|
|
run: |
|
|
set +e
|
|
RUNNING_PROCS=$(pgrep trace_processor_shell)
|
|
if [ -n "${RUNNING_PROCS}" ]; then kill -s 9 ${RUNNING_PROCS}; fi
|