ubuntu-focal #1270
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Ubuntu 20.04 (GCC, Python, ROCm, MPICH, OpenMPI) | |
run-name: ubuntu-focal | |
on: | |
push: | |
branches: [ main, develop, amd-mainline, amd-staging, 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, amd-mainline, amd-staging, 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: | |
ubuntu-focal-external: | |
runs-on: ubuntu-20.04 | |
container: | |
image: jrmadsen/omnitrace:ci-base-ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: ['g++-7', 'g++-8'] | |
lto: ['OFF'] | |
strip: ['OFF'] | |
python: ['ON'] | |
build-type: ['Release'] | |
mpi-headers: ['OFF'] | |
static-libgcc: ['OFF'] | |
static-libstdcxx: ['OFF'] | |
include: | |
- compiler: 'g++-9' | |
lto: 'OFF' | |
strip: 'ON' | |
python: 'OFF' | |
build-type: 'Release' | |
mpi-headers: 'ON' | |
static-libgcc: 'ON' | |
static-libstdcxx: 'ON' | |
- compiler: 'g++-10' | |
lto: 'OFF' | |
strip: 'ON' | |
python: 'ON' | |
build-type: 'Release' | |
mpi-headers: 'ON' | |
static-libgcc: 'ON' | |
static-libstdcxx: 'OFF' | |
- compiler: 'g++-11' | |
lto: 'ON' | |
strip: 'ON' | |
python: 'OFF' | |
build-type: 'Release' | |
mpi-headers: 'ON' | |
static-libgcc: 'ON' | |
static-libstdcxx: 'OFF' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Packages | |
timeout-minutes: 25 | |
uses: nick-fields/retry@v3 | |
with: | |
retry_wait_seconds: 30 | |
timeout_minutes: 25 | |
max_attempts: 5 | |
command: | | |
apt-get update && | |
apt-get install -y software-properties-common && | |
add-apt-repository -y ppa:ubuntu-toolchain-r/test && | |
apt-get update && | |
apt-get upgrade -y && | |
apt-get install -y build-essential m4 autoconf libtool python3-pip libiberty-dev clang libmpich-dev mpich environment-modules ${{ matrix.compiler }} && | |
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.16.3' && | |
for i in 6 7 8 9 10; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy perfetto dataclasses; done && | |
apt-get -y --purge autoremove && | |
apt-get -y clean && | |
/opt/conda/bin/conda clean -y -a | |
- name: Test Environment Modules | |
timeout-minutes: 15 | |
shell: bash | |
run: | | |
set -v | |
source /usr/share/modules/init/$(basename ${SHELL}) | |
module avail | |
- name: Configure Env | |
run: | |
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && | |
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV | |
- name: Configure, Build, and Test | |
timeout-minutes: 115 | |
shell: bash | |
run: | |
git config --global --add safe.directory ${PWD} && | |
TAG="" && | |
append-tagname() { if [ "${1}" == "ON" ]; then TAG="${TAG}-${2}"; fi; } && | |
append-tagname ${{ matrix.lto }} lto && | |
append-tagname ${{ matrix.strip }} strip && | |
append-tagname ${{ matrix.python }} python && | |
append-tagname ${{ matrix.mpi-headers }} mpip && | |
append-tagname ${{ matrix.static-libgcc }} libgcc && | |
append-tagname ${{ matrix.static-libstdcxx }} libstdcxx && | |
cmake --version && | |
python3 ./scripts/run-ci.py -B build | |
--name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-${{ matrix.compiler }}${TAG} | |
--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_PAPI=OFF | |
-DOMNITRACE_USE_PYTHON=${{ matrix.python }} | |
-DOMNITRACE_USE_MPI_HEADERS=${{ matrix.mpi-headers }} | |
-DOMNITRACE_STRIP_LIBRARIES=${{ matrix.strip }} | |
-DOMNITRACE_BUILD_LTO=${{ matrix.lto }} | |
-DOMNITRACE_BUILD_STATIC_LIBGCC=${{ matrix.static-libgcc }} | |
-DOMNITRACE_BUILD_STATIC_LIBSTDCXX=${{ matrix.static-libstdcxx }} | |
-DOMNITRACE_PYTHON_PREFIX=/opt/conda/envs | |
-DOMNITRACE_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10;py3.11" | |
-DOMNITRACE_MAX_THREADS=64 | |
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl" | |
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }} | |
-DMPI_HEADERS_ALLOW_MPICH=OFF | |
- name: Test Build-Tree Module | |
timeout-minutes: 45 | |
shell: bash | |
run: | | |
cd build | |
source /usr/share/modules/init/$(basename ${SHELL}) | |
module use ./share/modulefiles | |
module avail | |
module load omnitrace | |
echo $(which omnitrace) | |
ldd $(which omnitrace) | |
omnitrace-instrument --help | |
omnitrace-avail --help | |
omnitrace-sample --help | |
- name: Test Build-Tree Source Script | |
timeout-minutes: 45 | |
shell: bash | |
run: | | |
cd build | |
source ./share/omnitrace/setup-env.sh | |
echo $(which omnitrace) | |
ldd $(which omnitrace) | |
omnitrace-instrument --help | |
omnitrace-avail --help | |
omnitrace-sample --help | |
- name: Install | |
timeout-minutes: 10 | |
run: | |
cmake --build build --target install --parallel 2 | |
- name: Test Install | |
timeout-minutes: 15 | |
shell: bash | |
run: | | |
source /usr/share/modules/init/$(basename ${SHELL}) | |
module use /opt/omnitrace/share/modulefiles | |
module avail | |
module load omnitrace | |
./scripts/test-install.sh --test-omnitrace-{instrument,avail,sample,rewrite,runtime}=1 --test-omnitrace-python=${{ matrix.python }} | |
- 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@v4 | |
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@v4 | |
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 | |
ubuntu-focal-external-rocm: | |
runs-on: ubuntu-20.04 | |
container: | |
image: jrmadsen/omnitrace:ci-base-ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: ['g++'] | |
rocm-version: ['5.4', '5.5', '5.6'] | |
mpi-headers: ['OFF'] | |
build-jobs: ['3'] | |
ctest-exclude: ['-LE "mpi-example|transpose"'] | |
include: | |
- compiler: 'g++' | |
rocm-version: 'debian' | |
mpi-headers: 'ON' | |
build-jobs: '2' | |
ctest-exclude: '-LE transpose' | |
env: | |
BUILD_TYPE: MinSizeRel | |
OMPI_ALLOW_RUN_AS_ROOT: 1 | |
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Packages | |
timeout-minutes: 25 | |
uses: nick-fields/retry@v3 | |
with: | |
retry_wait_seconds: 30 | |
timeout_minutes: 25 | |
max_attempts: 5 | |
command: | | |
apt-get update && | |
apt-get install -y software-properties-common wget gnupg2 && | |
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - && | |
echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/${{ matrix.rocm-version }}/ ubuntu main" | tee /etc/apt/sources.list.d/rocm.list && | |
apt-get update && | |
apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev ${{ matrix.compiler }} libudev1 libnuma1 rocm-dev rocm-utils rocm-smi-lib roctracer-dev rocprofiler-dev rccl-dev hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev libpapi-dev curl libopenmpi-dev openmpi-bin libfabric-dev && | |
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 && | |
apt-get -y --purge autoremove && | |
apt-get -y clean && | |
/opt/conda/bin/conda clean -y -a | |
- name: Configure Env | |
run: | | |
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV | |
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV | |
echo "CMAKE_PREFIX_PATH=/opt/dyninst:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV | |
echo "LD_LIBRARY_PATH=/opt/rocm/lib:/usr/local/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV | |
cat << EOF > test-install.cfg | |
OMNITRACE_PROFILE = ON | |
OMNITRACE_TRACE = ON | |
OMNITRACE_USE_PID = OFF | |
OMNITRACE_USE_SAMPLING = OFF | |
OMNITRACE_USE_PROCESS_SAMPLING = OFF | |
OMNITRACE_COUT_OUTPUT = ON | |
OMNITRACE_TIME_OUTPUT = OFF | |
OMNITRACE_TIMEMORY_COMPONENTS = cpu_clock cpu_util current_peak_rss kernel_mode_time monotonic_clock monotonic_raw_clock network_stats num_io_in num_io_out num_major_page_faults num_minor_page_faults page_rss peak_rss priority_context_switch process_cpu_clock process_cpu_util read_bytes read_char system_clock thread_cpu_clock thread_cpu_util timestamp trip_count user_clock user_mode_time virtual_memory voluntary_context_switch wall_clock written_bytes written_char | |
OMNITRACE_OUTPUT_PATH = omnitrace-tests-output | |
OMNITRACE_OUTPUT_PREFIX = %tag%/ | |
OMNITRACE_DEBUG = OFF | |
OMNITRACE_VERBOSE = 3 | |
OMNITRACE_DL_VERBOSE = 3 | |
OMNITRACE_PERFETTO_BACKEND = system | |
EOF | |
realpath test-install.cfg | |
cat test-install.cfg | |
- name: Configure, Build, and Test | |
timeout-minutes: 115 | |
shell: bash | |
run: | |
git config --global --add safe.directory ${PWD} && | |
cmake --version && | |
TAG="-rocm-${{ matrix.rocm-version }}" && | |
TAG="$(echo ${TAG} | sed 's/debian/latest/g')" && | |
python3 ./scripts/run-ci.py -B build | |
--name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-rocm-${{ matrix.compiler }}${TAG} | |
--build-jobs 2 | |
--site GitHub | |
-- | |
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') | |
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }} | |
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} | |
-DCMAKE_INSTALL_PREFIX=/opt/omnitrace | |
-DOMNITRACE_BUILD_TESTING=ON | |
-DOMNITRACE_BUILD_DEVELOPER=ON | |
-DOMNITRACE_BUILD_EXTRA_OPTIMIZATIONS=OFF | |
-DOMNITRACE_BUILD_LTO=OFF | |
-DOMNITRACE_USE_MPI=OFF | |
-DOMNITRACE_USE_HIP=ON | |
-DOMNITRACE_MAX_THREADS=64 | |
-DOMNITRACE_USE_PAPI=OFF | |
-DOMNITRACE_USE_OMPT=OFF | |
-DOMNITRACE_USE_PYTHON=ON | |
-DOMNITRACE_USE_MPI_HEADERS=${{ matrix.mpi-headers }} | |
-DOMNITRACE_USE_SANITIZER=OFF | |
-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=${{ matrix.mpi-headers }} | |
-DOMNITRACE_CI_GPU=OFF | |
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF | |
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }} | |
-- | |
${{ matrix.ctest-exclude }} | |
- name: Install | |
run: | |
cmake --build build --target install --parallel 2 | |
- name: Test Install | |
timeout-minutes: 15 | |
shell: bash | |
run: | | |
source /opt/omnitrace/share/omnitrace/setup-env.sh | |
./scripts/test-install.sh --test-omnitrace-{instrument,avail,sample,python,rewrite,runtime}=1 | |
- 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@v4 | |
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@v4 | |
with: | |
name: data-${{ github.job }}-${{ strategy.job-index }}-files | |
path: | | |
omnitrace-tests-output/**/*.txt | |
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 | |
ubuntu-focal: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: ['g++'] | |
mpi: [ 'nompi', 'mpich', 'openmpi' ] | |
boost: ['OFF'] | |
tbb: ['OFF'] | |
build-type: ['Release'] | |
python: ['ON'] | |
ompt: ['ON'] | |
papi: ['ON'] | |
deps: ['libtbb-dev libboost-{atomic,system,thread,date-time,filesystem,timer}-dev'] | |
include: | |
- compiler: 'g++' | |
mpi: 'nompi' | |
boost: 'ON' | |
tbb: 'ON' | |
build-type: 'Release' | |
python: 'ON' | |
ompt: 'OFF' | |
papi: 'OFF' | |
deps: '' | |
env: | |
ELFUTILS_DOWNLOAD_VERSION: 0.186 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Packages | |
timeout-minutes: 25 | |
uses: nick-fields/retry@v3 | |
with: | |
retry_wait_seconds: 30 | |
timeout_minutes: 25 | |
max_attempts: 5 | |
command: | | |
sudo apt-get update && | |
sudo apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev environment-modules ${{ matrix.deps }} ${{ matrix.compiler }} && | |
if [ "${{ matrix.mpi }}" = "mpich" ]; then sudo apt-get install -y libmpich-dev mpich; fi && | |
if [ "${{ matrix.mpi }}" = "openmpi" ]; then sudo apt-get install -y libopenmpi-dev openmpi-bin libfabric-dev; fi && | |
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.16.3' && | |
sudo apt-get -y --purge autoremove && | |
sudo apt-get -y clean | |
- name: Test Environment Modules | |
timeout-minutes: 15 | |
run: | | |
set -v | |
source /usr/share/modules/init/$(basename ${SHELL}) | |
module avail | |
- name: Configure Env | |
run: | |
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && | |
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && | |
echo "${HOME}/.local/bin" >> $GITHUB_PATH | |
- name: Configure, Build, and Test | |
timeout-minutes: 115 | |
shell: bash | |
run: | |
cmake --version && | |
if [ "${{ matrix.mpi }}" = "nompi" ]; then USE_MPI=OFF; else USE_MPI=ON; fi && | |
if [ -z "${{ matrix.deps }}" ]; then TAG=""; else TAG="-external-deps"; fi && | |
python3 ./scripts/run-ci.py -B ${{ github.workspace }}/build | |
--name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-${{ matrix.compiler }}-${{ matrix.mpi }}${TAG} | |
--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_BUILD_DYNINST=ON | |
-DOMNITRACE_USE_MPI=${USE_MPI} | |
-DOMNITRACE_USE_HIP=OFF | |
-DOMNITRACE_USE_PYTHON=${{ matrix.python }} | |
-DOMNITRACE_USE_OMPT=${{ matrix.ompt }} | |
-DOMNITRACE_USE_PAPI=${{ matrix.papi }} | |
-DDYNINST_BUILD_ELFUTILS=ON | |
-DDYNINST_BUILD_LIBIBERTY=ON | |
-DDYNINST_BUILD_TBB=${{ matrix.tbb }} | |
-DDYNINST_BUILD_BOOST=${{ matrix.boost }} | |
-DDYNINST_BUILD_SHARED_LIBS=ON | |
-DDYNINST_BUILD_STATIC_LIBS=OFF | |
-DDYNINST_ELFUTILS_DOWNLOAD_VERSION=${{ env.ELFUTILS_DOWNLOAD_VERSION }} | |
-DOMNITRACE_MAX_THREADS=64 | |
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl" | |
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }} | |
-DMPI_HEADERS_ALLOW_MPICH=ON | |
- name: Test Build-Tree Env | |
timeout-minutes: 60 | |
run: | |
source /usr/share/modules/init/$(basename ${SHELL}) | |
module use ${{ github.workspace }}/build/share/modulefiles | |
module avail | |
module load omnitrace | |
module list | |
env | |
module unload omnitrace | |
module list | |
env | |
source ${{ github.workspace }}/build/share/omnitrace/setup-env.sh | |
env | |
- name: Install | |
working-directory: ${{ github.workspace }}/build | |
run: | | |
cpack -G STGZ | |
mkdir -p /opt/omnitrace | |
./omnitrace-*.sh --prefix=/opt/omnitrace --exclude-subdir --skip-license | |
- name: Test Install with setup-env.sh | |
timeout-minutes: 15 | |
run: | | |
set -v | |
source /opt/omnitrace/share/omnitrace/setup-env.sh | |
${{ github.workspace }}/scripts/test-install.sh --test-omnitrace-{instrument,avail,sample,python,rewrite,runtime}=1 | |
- name: Test Install with Modulefile | |
timeout-minutes: 15 | |
run: | | |
set -v | |
source /usr/share/modules/init/$(basename ${SHELL}) | |
module use /opt/omnitrace/share/modulefiles | |
module load omnitrace | |
${{ github.workspace }}/scripts/test-install.sh --test-omnitrace-{instrument,avail,sample,python,rewrite,runtime}=1 | |
- name: Test User API | |
timeout-minutes: 10 | |
run: | | |
set -v | |
${{ github.workspace }}/scripts/test-find-package.sh --install-dir /opt/omnitrace | |
- name: CTest Artifacts | |
if: failure() | |
continue-on-error: True | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ctest-${{ github.job }}-${{ strategy.job-index }}-log | |
path: | | |
${{ github.workspace }}/build/*.log | |
- name: Data Artifacts | |
if: failure() | |
continue-on-error: True | |
uses: actions/upload-artifact@v4 | |
with: | |
name: data-${{ github.job }}-${{ strategy.job-index }}-files | |
path: | | |
${{ github.workspace }}/build/omnitrace-tests-config/*.cfg | |
${{ github.workspace }}/build/omnitrace-tests-output/**/*.txt | |
${{ github.workspace }}/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 | |
ubuntu-focal-codecov: | |
runs-on: ubuntu-20.04 | |
container: | |
image: jrmadsen/omnitrace:ci-base-ubuntu-20.04 | |
options: --cap-add CAP_SYS_ADMIN | |
env: | |
OMNITRACE_VERBOSE: 2 | |
OMNITRACE_CAUSAL_BACKEND: perf | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Packages | |
timeout-minutes: 25 | |
uses: nick-fields/retry@v3 | |
with: | |
retry_wait_seconds: 30 | |
timeout_minutes: 25 | |
max_attempts: 5 | |
command: | | |
apt-get update && | |
apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev environment-modules gcc g++ mpich libmpich-dev texinfo && | |
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.24.1' && | |
for i in 6 7 8 9 10; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy perfetto dataclasses; done && | |
apt-get -y --purge autoremove && | |
apt-get -y clean && | |
/opt/conda/bin/conda clean -y -a | |
- name: Configure Env | |
run: | |
echo "${HOME}/.local/bin" >> $GITHUB_PATH | |
- 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 }}-ubuntu-focal-codecov-mpi-python-ompt-papi | |
--build-jobs 2 | |
--site GitHub | |
--coverage | |
-- | |
-DCMAKE_INSTALL_PREFIX=/opt/omnitrace | |
-DOMNITRACE_BUILD_CI=OFF | |
-DOMNITRACE_BUILD_TESTING=ON | |
-DOMNITRACE_BUILD_DYNINST=OFF | |
-DOMNITRACE_BUILD_DEBUG=OFF | |
-DOMNITRACE_BUILD_HIDDEN_VISIBILITY=OFF | |
-DOMNITRACE_USE_MPI=ON | |
-DOMNITRACE_USE_PYTHON=ON | |
-DOMNITRACE_USE_OMPT=ON | |
-DOMNITRACE_USE_PAPI=ON | |
-DOMNITRACE_USE_HIP=OFF | |
-DOMNITRACE_USE_RCCL=OFF | |
-DOMNITRACE_MAX_THREADS=64 | |
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl" | |
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }} |