96d7b8f0ab
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>
162 lignes
5.3 KiB
YAML
162 lignes
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
|