ubuntu-focal #1325
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: [ 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: [ 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 autoconf bison build-essential clang environment-modules libiberty-dev libmpich-dev libtool m4 mpich python3-pip texinfo ${{ 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 --upgrade numpy perfetto dataclasses && | |
python3 -m pip install 'cmake==3.18.4' && | |
for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade 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 autoconf bison build-essential clang curl hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev libfabric-dev libnuma1 libomp-dev libopenmpi-dev libpapi-dev libtool libudev1 m4 openmpi-bin python3-pip rccl-dev rocm-dev rocm-smi-lib rocm-utils rocprofiler-dev roctracer-dev texinfo ${{ 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 --upgrade numpy perfetto dataclasses && | |
python3 -m pip install 'cmake==3.18.4' && | |
for i in 6 7 8 9 10 11; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade 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 autoconf bison build-essential clang environment-modules gettext libomp-dev libtool m4 python3-pip texinfo ${{ matrix.compiler }} ${{ matrix.deps }} && | |
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 --upgrade numpy perfetto dataclasses && | |
python3 -m pip install 'cmake==3.18.4' && | |
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 autoconf bison build-essential clang environment-modules gcc g++ libmpich-dev libomp-dev libtool m4 mpich python3-pip 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 --upgrade numpy perfetto dataclasses && | |
python3 -m pip install 'cmake==3.18.4' && | |
for i in 6 7 8 9 10; do /opt/conda/envs/py3.${i}/bin/python -m pip install --upgrade 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 }} |