Support for Ubuntu 22.04 and ROCm 5.3 (#48)
* Testing and CI support for Ubuntu 22.04 * Fixes for ROCm - Jammy does not have ROCm installers * Name, timeout, and python updates - renamed ubuntu-jammy-external.yml to ubuntu-jammy.yml - increased all 5 minute timeouts to 10 minutes - include python 3.10 in testing * Update dyninst to remove interposed definition of _r_debug * Rebuild Dyninst + test install script * Revert container change * git safe directory * pushd -> cd * fix MPI include * Fix testing step * OMPI_ALLOW_RUN_AS_ROOT * Test script changes * Fix mismatched malloc / delete[] * Jammy workflow tweaks * CPack tweak for boost deb deps * pthread_mutex_gotcha config returns when not enabled * fix echoing config in CI * USE_CLANG_OMP - option to disable using LLVM OpenMP when building OpenMP test executables - Jammy workflow sets USE_CLANG_OMP=OFF * Dyninst submodule boost download - updated containers workflow to include jammy - updated workflow to use ci * Updates to workflows + replace test-install.sh - test-install.sh in this branch was replaced with one in main branch * Expand jammy test-install.sh args * Fix openmp-cg-sampling-duration test * update timemory submodule - use-after-free violation in popen::pclose * revert some tweaks to sampling-duration test * Fix env of test-install.sh * cmake format * jammy bash * CPack install for jammy * formatting workflow action version bump * Update timemory submodule - libunwind submodule via timemory sets SOVERSION to 99 to avoid ABI conflicts with v8 * Fix help menu for omnitrace-sample * Support other boolean forms in test-install.sh * Update docker files and build-docker.sh - consolidated cases in build-docker.sh - support rocm version of 0.0 (no rocm install) - support rocm v5.3 - updated centos handling * update opensuse actions/checkout version * Tweaks to ubuntu-focal testing - actions/checkout@v3 - use test-install script * update cpack - ubuntu 22.04 - rocm 5.3 - rename os matrix field to os-version - remove CI_ROCM_VERSION (no longer necessary) - remove default-rocm-version matrix field (no longer necessary) - CentOS packaging * fix argparsing and omnitrace-sample tests in install-tests.sh * focal rocm test install workflow fix * Fix omnitrace-sample build * Dockerfile.centos + build-docker.sh updates * Update actions/upload-artifact version * Dockerfile.ubuntu: install rocm-device-libs * Refactor cpack * fix cpack if quotes * Dockerfile.ubuntu rocm < 5 installs rocm-dev * build-release.sh defaults to boost version 1.79.0
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
a3439d5bf2
Коммит
ede6007f9b
@@ -26,6 +26,8 @@ jobs:
|
||||
version: "18.04"
|
||||
- distro: "ubuntu"
|
||||
version: "20.04"
|
||||
- distro: "ubuntu"
|
||||
version: "22.04"
|
||||
- distro: "opensuse"
|
||||
version: "15.2"
|
||||
- distro: "opensuse"
|
||||
@@ -55,7 +57,7 @@ jobs:
|
||||
timeout-minutes: 45
|
||||
run: |
|
||||
pushd docker
|
||||
./build-docker-ci.sh --distro ${{ matrix.distro }} --versions ${{ matrix.version }} --user ${{ secrets.DOCKERHUB_USERNAME }} --push --jobs 2 --elfutils-version 0.186
|
||||
./build-docker-ci.sh --distro ${{ matrix.distro }} --versions ${{ matrix.version }} --user ${{ secrets.DOCKERHUB_USERNAME }} --push --jobs 2 --elfutils-version 0.186 --boost-version 1.79.0
|
||||
popd
|
||||
|
||||
omnitrace-release-ubuntu:
|
||||
@@ -103,7 +105,7 @@ jobs:
|
||||
|
||||
omnitrace-release-opensuse:
|
||||
if: github.repository == 'AMDResearch/omnitrace'
|
||||
|
||||
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
strategy:
|
||||
|
||||
+103
-110
@@ -34,9 +34,84 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: ["18.04", "20.04"]
|
||||
rocm-version: ["0.0", "4.5", "5.0", "5.1", "5.2"]
|
||||
default-rocm: ["5.0"]
|
||||
include:
|
||||
# ubuntu 18.04
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "18.04"
|
||||
rocm-version: "0.0"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "18.04"
|
||||
rocm-version: "4.5"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "18.04"
|
||||
rocm-version: "5.0"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "18.04"
|
||||
rocm-version: "5.1"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "18.04"
|
||||
rocm-version: "5.2"
|
||||
# ubuntu 20.04
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "20.04"
|
||||
rocm-version: "0.0"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "20.04"
|
||||
rocm-version: "4.5"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "20.04"
|
||||
rocm-version: "5.0"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "20.04"
|
||||
rocm-version: "5.1"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "20.04"
|
||||
rocm-version: "5.2"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "20.04"
|
||||
rocm-version: "5.3"
|
||||
# ubuntu 20.04
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "22.04"
|
||||
rocm-version: "0.0"
|
||||
- os-distro: "ubuntu"
|
||||
os-version: "22.04"
|
||||
rocm-version: "5.3"
|
||||
# opensuse 15.3
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.3"
|
||||
rocm-version: "0.0"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.3"
|
||||
rocm-version: "4.5"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.3"
|
||||
rocm-version: "5.0"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.3"
|
||||
rocm-version: "5.1"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.3"
|
||||
rocm-version: "5.2"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.3"
|
||||
rocm-version: "5.3"
|
||||
# opensuse 15.4
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.4"
|
||||
rocm-version: "0.0"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.4"
|
||||
rocm-version: "5.0"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.4"
|
||||
rocm-version: "5.1"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.4"
|
||||
rocm-version: "5.2"
|
||||
- os-distro: "opensuse"
|
||||
os-version: "15.4"
|
||||
rocm-version: "5.3"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
@@ -46,27 +121,25 @@ jobs:
|
||||
- name: Configure ROCm Version
|
||||
if: ${{ matrix.rocm-version == 0 }}
|
||||
run: |
|
||||
echo "CI_ROCM_VERSION=${{ matrix.default-rocm }}" >> $GITHUB_ENV
|
||||
echo "CI_SCRIPT_ARGS=--core +python" >> $GITHUB_ENV
|
||||
|
||||
- name: Configure ROCm Version
|
||||
if: ${{ matrix.rocm-version > 0 }}
|
||||
run: |
|
||||
echo "CI_ROCM_VERSION=${{ matrix.rocm-version }}" >> $GITHUB_ENV
|
||||
echo "CI_SCRIPT_ARGS=--rocm +python" >> $GITHUB_ENV
|
||||
|
||||
- name: Build Base Container
|
||||
timeout-minutes: 20
|
||||
run: |
|
||||
pushd docker
|
||||
./build-docker.sh --distro ubuntu --versions ${{ matrix.os }} --rocm-versions ${CI_ROCM_VERSION}
|
||||
./build-docker.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }}
|
||||
popd
|
||||
|
||||
- name: Build Release
|
||||
timeout-minutes: 150
|
||||
run: |
|
||||
pushd docker
|
||||
./build-docker-release.sh --distro ubuntu --versions ${{ matrix.os }} --rocm-versions ${CI_ROCM_VERSION} -- ${CI_SCRIPT_ARGS}
|
||||
./build-docker-release.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- ${CI_SCRIPT_ARGS}
|
||||
popd
|
||||
|
||||
- name: List Files
|
||||
@@ -76,26 +149,36 @@ jobs:
|
||||
|
||||
- name: STGZ Artifacts
|
||||
timeout-minutes: 10
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ubuntu-${{ matrix.os }}-rocm-${{ matrix.rocm-version }}-stgz-installers
|
||||
name: omnitrace-stgz-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer
|
||||
path: |
|
||||
build-release/stgz/*.sh
|
||||
|
||||
- name: DEB Artifacts
|
||||
timeout-minutes: 10
|
||||
uses: actions/upload-artifact@v2
|
||||
if: ${{ matrix.os-distro == 'ubuntu' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ubuntu-${{ matrix.os }}-rocm-${{ matrix.rocm-version }}-deb-installers
|
||||
name: omnitrace-deb-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer
|
||||
path: |
|
||||
build-release/deb/*.deb
|
||||
|
||||
- name: RPM Artifacts
|
||||
timeout-minutes: 10
|
||||
if: ${{ matrix.os-distro != 'ubuntu' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: omnitrace-rpm-${{ matrix.os-distro }}-${{ matrix.os-version }}-rocm-${{ matrix.rocm-version }}-installer
|
||||
path: |
|
||||
build-release/rpm/*.rpm
|
||||
|
||||
# before testing remove any artifacts of the build
|
||||
- name: Remove Build
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
mv build-release/stgz/*.sh ./
|
||||
mv build-release/deb/*.deb ./
|
||||
shopt -s nullglob
|
||||
for i in $(find build-release -type f | egrep '/(stgz|deb|rpm)/.*\.(sh|deb|rpm)$'); do mv ${i} ./; done
|
||||
sudo rm -rf build-release
|
||||
sudo rm -rf /opt/omnitrace
|
||||
|
||||
@@ -105,7 +188,7 @@ jobs:
|
||||
set -v
|
||||
for i in omnitrace-*.sh
|
||||
do
|
||||
./docker/test-docker-release.sh --distro ubuntu --versions ${{ matrix.os }} --rocm-versions ${CI_ROCM_VERSION} -- --stgz ${i}
|
||||
./docker/test-docker-release.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --stgz ${i}
|
||||
done
|
||||
|
||||
- name: Upload STGZ Release Assets
|
||||
@@ -118,125 +201,35 @@ jobs:
|
||||
|
||||
- name: Test DEB Install
|
||||
timeout-minutes: 20
|
||||
if: ${{ matrix.os-distro == 'ubuntu' }}
|
||||
run: |
|
||||
set -v
|
||||
for i in omnitrace_*.deb
|
||||
do
|
||||
./docker/test-docker-release.sh --distro ubuntu --versions ${{ matrix.os }} --rocm-versions ${CI_ROCM_VERSION} -- --deb ${i}
|
||||
./docker/test-docker-release.sh --distro ${{ matrix.os-distro }} --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --deb ${i}
|
||||
done
|
||||
|
||||
- name: Upload DEB Release Assets
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace'
|
||||
if: matrix.os-distro == 'ubuntu' && startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace'
|
||||
with:
|
||||
fail_on_unmatched_files: True
|
||||
files: |
|
||||
omnitrace_*.deb
|
||||
|
||||
opensuse:
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: ["15.2", "15.3"]
|
||||
rocm-version: ["0.0", "4.5", "5.0", "5.1", "5.2"]
|
||||
default-rocm: ["5.0"]
|
||||
exclude:
|
||||
- os: "15.2"
|
||||
rocm-version: "5.1"
|
||||
- os: "15.2"
|
||||
rocm-version: "5.2"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Configure ROCm Version
|
||||
if: ${{ matrix.rocm-version == 0 }}
|
||||
run: |
|
||||
echo "CI_ROCM_VERSION=${{ matrix.default-rocm }}" >> $GITHUB_ENV
|
||||
echo "CI_SCRIPT_ARGS=--core +python" >> $GITHUB_ENV
|
||||
|
||||
- name: Configure ROCm Version
|
||||
if: ${{ matrix.rocm-version > 0 }}
|
||||
run: |
|
||||
echo "CI_ROCM_VERSION=${{ matrix.rocm-version }}" >> $GITHUB_ENV
|
||||
echo "CI_SCRIPT_ARGS=--rocm +python" >> $GITHUB_ENV
|
||||
|
||||
- name: Build Base Container
|
||||
timeout-minutes: 20
|
||||
run: |
|
||||
pushd docker
|
||||
./build-docker.sh --distro opensuse --versions ${{ matrix.os }} --rocm-versions ${CI_ROCM_VERSION}
|
||||
popd
|
||||
|
||||
- name: Build Release
|
||||
timeout-minutes: 150
|
||||
run: |
|
||||
pushd docker
|
||||
./build-docker-release.sh --distro opensuse --versions ${{ matrix.os }} --rocm-versions ${CI_ROCM_VERSION} -- ${CI_SCRIPT_ARGS}
|
||||
popd
|
||||
|
||||
- name: List Files
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
find build-release -type f | egrep '\.(sh|deb|rpm)$'
|
||||
|
||||
- name: STGZ Artifacts
|
||||
timeout-minutes: 10
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: opensuse-${{ matrix.os }}-rocm-${{ matrix.rocm-version }}-stgz-installers
|
||||
path: |
|
||||
build-release/stgz/*.sh
|
||||
|
||||
- name: RPM Artifacts
|
||||
timeout-minutes: 10
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: opensuse-${{ matrix.os }}-rocm-${{ matrix.rocm-version }}-rpm-installers
|
||||
path: |
|
||||
build-release/rpm/*.rpm
|
||||
|
||||
# before testing remove any artifacts of the build
|
||||
- name: Remove Build
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
mv build-release/stgz/*.sh ./
|
||||
mv build-release/rpm/*.rpm ./
|
||||
sudo rm -rf build-release
|
||||
sudo rm -rf /opt/omnitrace
|
||||
|
||||
- name: Test STGZ Install
|
||||
timeout-minutes: 20
|
||||
run: |
|
||||
set -v
|
||||
for i in omnitrace-*.sh
|
||||
do
|
||||
./docker/test-docker-release.sh --distro opensuse --versions ${{ matrix.os }} --rocm-versions ${CI_ROCM_VERSION} -- --stgz ${i}
|
||||
done
|
||||
|
||||
- name: Upload STGZ Release Assets
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace'
|
||||
with:
|
||||
fail_on_unmatched_files: True
|
||||
files: |
|
||||
omnitrace-*.sh
|
||||
|
||||
- name: Test RPM Install
|
||||
timeout-minutes: 20
|
||||
if: ${{ matrix.os-distro != 'ubuntu' }}
|
||||
run: |
|
||||
set -v
|
||||
for i in omnitrace-*.rpm
|
||||
do
|
||||
./docker/test-docker-release.sh --distro opensuse --versions ${{ matrix.os }} --rocm-versions ${CI_ROCM_VERSION} -- --rpm ${i}
|
||||
./docker/test-docker-release.sh --distro opensuse --versions ${{ matrix.os-version }} --rocm-versions ${{ matrix.rocm-version }} -- --rpm ${i}
|
||||
done
|
||||
|
||||
- name: Upload RPM Release Assets
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace'
|
||||
if: matrix.os-distro != 'ubuntu' && startsWith(github.ref, 'refs/tags/') && github.repository == 'AMDResearch/omnitrace'
|
||||
with:
|
||||
fail_on_unmatched_files: True
|
||||
files: |
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
name: formatting
|
||||
name: Formatting
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -19,9 +19,9 @@ jobs:
|
||||
python-version: [3.8]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v2
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
DISTRIB_CODENAME=$(cat /etc/lsb-release | grep DISTRIB_CODENAME | awk -F '=' '{print $NF}')
|
||||
@@ -88,7 +88,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- name: check-includes
|
||||
run: |
|
||||
set +e
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
os-release: [ '15.2', '15.3' ]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install Packages
|
||||
timeout-minutes: 10
|
||||
@@ -109,7 +109,7 @@ jobs:
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ctest-${{ github.job }}-log
|
||||
path: |
|
||||
@@ -117,7 +117,7 @@ jobs:
|
||||
|
||||
- name: Data Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: data-${{ github.job }}-files
|
||||
path: |
|
||||
|
||||
@@ -138,7 +138,7 @@ jobs:
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ctest-${{ github.job }}-log
|
||||
path: |
|
||||
@@ -146,7 +146,7 @@ jobs:
|
||||
|
||||
- name: Data Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: data-${{ github.job }}-files
|
||||
path: |
|
||||
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
static-libstdcxx: 'OFF'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install Packages
|
||||
timeout-minutes: 10
|
||||
@@ -66,19 +66,25 @@ jobs:
|
||||
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 libomp-dev libmpich-dev mpich ${{ matrix.compiler }} &&
|
||||
apt-get install -y build-essential m4 autoconf libtool python3-pip libiberty-dev clang libomp-dev libmpich-dev mpich environment-modules ${{ matrix.compiler }} &&
|
||||
python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install numpy &&
|
||||
python3 -m pip install perfetto &&
|
||||
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
|
||||
|
||||
- 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 &&
|
||||
echo "/opt/omnitrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH &&
|
||||
echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
|
||||
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Configure CMake
|
||||
timeout-minutes: 10
|
||||
@@ -117,34 +123,28 @@ jobs:
|
||||
|
||||
- name: Test
|
||||
timeout-minutes: 45
|
||||
run:
|
||||
cd build &&
|
||||
ldd ./bin/omnitrace &&
|
||||
./bin/omnitrace --help &&
|
||||
ctest -V -N -O omnitrace-ctest-${{ github.job }}-commands.log &&
|
||||
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 --help
|
||||
ctest -V -N -O omnitrace-ctest-${{ github.job }}-commands.log
|
||||
ctest -V --output-log omnitrace-ctest-${{ github.job }}.log --stop-on-failure
|
||||
|
||||
- name: Test Install
|
||||
timeout-minutes: 10
|
||||
timeout-minutes: 15
|
||||
shell: bash
|
||||
run: |
|
||||
set -v
|
||||
export OMNITRACE_DEBUG=ON
|
||||
which omnitrace-avail
|
||||
ldd $(which omnitrace-avail)
|
||||
omnitrace-avail --help
|
||||
omnitrace-avail -a
|
||||
which omnitrace-critical-trace
|
||||
ldd $(which omnitrace-critical-trace)
|
||||
which omnitrace
|
||||
ldd $(which omnitrace)
|
||||
omnitrace --help
|
||||
omnitrace -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 -e -v 1 -o ls.inst -- ls
|
||||
./ls.inst
|
||||
omnitrace -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 -e -v 1 -- ls
|
||||
source /usr/share/modules/init/$(basename ${SHELL})
|
||||
module use /opt/omnitrace/share/modulefiles
|
||||
module avail
|
||||
module load omnitrace
|
||||
./scripts/test-install.sh --test-omnitrace{,-avail,-sample,-rewrite,-runtime,-critical-trace}=1 --test-omnitrace-python=${{ matrix.python }}
|
||||
|
||||
- name: Test User API
|
||||
timeout-minutes: 10
|
||||
@@ -154,7 +154,7 @@ jobs:
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ctest-${{ github.job }}-log
|
||||
path: |
|
||||
@@ -162,7 +162,7 @@ jobs:
|
||||
|
||||
- name: Data Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: data-${{ github.job }}-files
|
||||
path: |
|
||||
@@ -204,7 +204,7 @@ jobs:
|
||||
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install Packages
|
||||
timeout-minutes: 10
|
||||
@@ -296,63 +296,12 @@ jobs:
|
||||
ctest -V ${{ matrix.ctest_exclude }} -N -O omnitrace-ctest-${{ github.job }}-commands.log &&
|
||||
ctest -V ${{ matrix.ctest_exclude }} --output-log omnitrace-ctest-${{ github.job }}.log --stop-on-failure
|
||||
|
||||
- name: Configure Install Env
|
||||
run: |
|
||||
echo "/opt/omnitrace/bin" >> $GITHUB_PATH
|
||||
echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
|
||||
echo "OMNITRACE_CONFIG_FILE=test-install.cfg" >> $GITHUB_ENV
|
||||
|
||||
- name: Test Install
|
||||
timeout-minutes: 10
|
||||
if: ${{ matrix.perfetto-tools == 'ON' }}
|
||||
timeout-minutes: 15
|
||||
shell: bash
|
||||
run: |
|
||||
set -v
|
||||
cat ${OMNITRACE_CONFIG_FILE}
|
||||
omnitrace-perfetto-traced --background
|
||||
which omnitrace-avail
|
||||
ldd $(which omnitrace-avail)
|
||||
omnitrace-avail --help
|
||||
omnitrace-avail -a
|
||||
which omnitrace-python
|
||||
omnitrace-python --help
|
||||
which omnitrace-critical-trace
|
||||
ldd $(which omnitrace-critical-trace)
|
||||
which omnitrace
|
||||
ldd $(which omnitrace)
|
||||
omnitrace --help
|
||||
omnitrace -e -v 1 -o ls.inst --simulate -- ls
|
||||
omnitrace -e -v 1 --simulate -- ls
|
||||
omnitrace -e -v 1 -o ls.inst -- ls
|
||||
omnitrace-perfetto --out ls-perfetto-trace.proto --txt -c omnitrace.cfg
|
||||
./ls.inst
|
||||
omnitrace -e -v 1 -- ls
|
||||
du -m ls-perfetto-trace.proto
|
||||
/opt/conda/envs/py3.8/bin/python ./tests/validate-perfetto-proto.py -p -i ./ls-perfetto-trace.proto
|
||||
|
||||
- name: Test Install
|
||||
timeout-minutes: 10
|
||||
if: ${{ matrix.perfetto-tools == 'OFF' }}
|
||||
run: |
|
||||
set -v
|
||||
cat ${OMNITRACE_CONFIG_FILE}
|
||||
which omnitrace-avail
|
||||
ldd $(which omnitrace-avail)
|
||||
omnitrace-avail --help
|
||||
omnitrace-avail -a
|
||||
which omnitrace-python
|
||||
omnitrace-python --help
|
||||
which omnitrace-critical-trace
|
||||
ldd $(which omnitrace-critical-trace)
|
||||
which omnitrace
|
||||
ldd $(which omnitrace)
|
||||
omnitrace --help
|
||||
omnitrace -e -v 1 -o sleep.inst --simulate -- sleep
|
||||
omnitrace -e -v 1 --simulate -- sleep
|
||||
omnitrace -e -v 1 -o sleep.inst -- sleep
|
||||
./sleep.inst 5
|
||||
omnitrace -e -v 1 -- sleep 5
|
||||
cat omnitrace-tests-output/sleep.inst/wall_clock.txt
|
||||
cat omnitrace-tests-output/sleep/wall_clock.txt
|
||||
source /opt/omnitrace/share/omnitrace/setup-env.sh
|
||||
./scripts/test-install.sh --test-omnitrace{,-avail,-sample,-python,-rewrite,-runtime,-critical-trace}=1
|
||||
|
||||
- name: Test User API
|
||||
timeout-minutes: 10
|
||||
@@ -362,7 +311,7 @@ jobs:
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ctest-${{ github.job }}-log
|
||||
path: |
|
||||
@@ -370,7 +319,7 @@ jobs:
|
||||
|
||||
- name: Data Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: data-${{ github.job }}-files
|
||||
path: |
|
||||
@@ -417,7 +366,7 @@ jobs:
|
||||
OMNITRACE_CI: ON
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install Packages
|
||||
timeout-minutes: 10
|
||||
@@ -507,7 +456,7 @@ jobs:
|
||||
run: |
|
||||
set -v
|
||||
source /opt/omnitrace/share/omnitrace/setup-env.sh
|
||||
${{ github.workspace }}/scripts/test-install.sh --test-omnitrace{,-avail,-python,-rewrite,-runtime,-critical-trace}=1
|
||||
${{ github.workspace }}/scripts/test-install.sh --test-omnitrace{,-avail,-sample,-python,-rewrite,-runtime,-critical-trace}=1
|
||||
|
||||
- name: Test Install with Modulefile
|
||||
timeout-minutes: 15
|
||||
@@ -516,7 +465,7 @@ jobs:
|
||||
source /usr/share/modules/init/$(basename ${SHELL})
|
||||
module use /opt/omnitrace/share/modulefiles
|
||||
module load omnitrace
|
||||
${{ github.workspace }}/scripts/test-install.sh --test-omnitrace{,-avail,-python,-rewrite,-runtime,-critical-trace}=1
|
||||
${{ github.workspace }}/scripts/test-install.sh --test-omnitrace{,-avail,-sample,-python,-rewrite,-runtime,-critical-trace}=1
|
||||
|
||||
- name: Test User API
|
||||
timeout-minutes: 10
|
||||
@@ -526,7 +475,7 @@ jobs:
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ctest-${{ github.job }}-log
|
||||
path: |
|
||||
@@ -534,7 +483,7 @@ jobs:
|
||||
|
||||
- name: Data Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: data-${{ github.job }}-files
|
||||
path: |
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
name: Ubuntu 22.04 (GCC, Python)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
pull_request:
|
||||
branches: [ main, develop ]
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
OMNITRACE_VERBOSE: 1
|
||||
OMNITRACE_CI: ON
|
||||
|
||||
jobs:
|
||||
ubuntu-jammy-external:
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
image: jrmadsen/omnitrace:ci-base-ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
compiler: ['g++-11', 'g++-12']
|
||||
hip: ['OFF']
|
||||
mpi: ['OFF']
|
||||
ompt: ['OFF']
|
||||
papi: ['OFF']
|
||||
python: ['ON']
|
||||
lto: ['OFF']
|
||||
strip: ['OFF']
|
||||
hidden: ['ON', 'OFF']
|
||||
build-type: ['Release']
|
||||
mpi-headers: ['ON', 'OFF']
|
||||
static-libgcc: ['OFF']
|
||||
static-libstdcxx: ['OFF']
|
||||
|
||||
env:
|
||||
OMPI_ALLOW_RUN_AS_ROOT: 1
|
||||
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install Packages
|
||||
timeout-minutes: 10
|
||||
run:
|
||||
apt-get update &&
|
||||
apt-get install -y software-properties-common &&
|
||||
apt-get upgrade -y &&
|
||||
apt-get install -y build-essential m4 autoconf libtool python3-pip libiberty-dev clang libomp-dev libopenmpi-dev libfabric-dev openmpi-bin environment-modules ${{ matrix.compiler }} &&
|
||||
python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install numpy &&
|
||||
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: 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 CMake
|
||||
timeout-minutes: 10
|
||||
run:
|
||||
git config --global --add safe.directory ${PWD} &&
|
||||
cmake --version &&
|
||||
cmake -B build
|
||||
-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-dev
|
||||
-DOMNITRACE_BUILD_TESTING=ON
|
||||
-DOMNITRACE_USE_MPI=${{ matrix.mpi }}
|
||||
-DOMNITRACE_USE_HIP=${{ matrix.hip }}
|
||||
-DOMNITRACE_USE_OMPT=${{ matrix.ompt }}
|
||||
-DOMNITRACE_USE_PAPI=${{ matrix.papi }}
|
||||
-DOMNITRACE_USE_PYTHON=${{ matrix.python }}
|
||||
-DOMNITRACE_USE_MPI_HEADERS=${{ matrix.mpi-headers }}
|
||||
-DOMNITRACE_STRIP_LIBRARIES=${{ matrix.strip }}
|
||||
-DOMNITRACE_BUILD_LTO=${{ matrix.lto }}
|
||||
-DOMNITRACE_BUILD_HIDDEN_VISIBILITY=${{ matrix.hidden }}
|
||||
-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"
|
||||
-DUSE_CLANG_OMP=OFF
|
||||
|
||||
- name: Build
|
||||
timeout-minutes: 60
|
||||
run:
|
||||
cmake --build build --target all --parallel 2 -- VERBOSE=1
|
||||
|
||||
- name: Install
|
||||
timeout-minutes: 10
|
||||
run:
|
||||
cmake --build build --target install --parallel 2
|
||||
|
||||
- name: Test
|
||||
timeout-minutes: 45
|
||||
run:
|
||||
cd build &&
|
||||
ctest -V -N -O omnitrace-ctest-${{ github.job }}-commands.log &&
|
||||
ctest -V --output-log omnitrace-ctest-${{ github.job }}.log
|
||||
|
||||
- name: CPack and Install
|
||||
run: |
|
||||
cd build
|
||||
cpack -G STGZ
|
||||
mkdir -p /opt/omnitrace
|
||||
./omnitrace-*.sh --prefix=/opt/omnitrace --exclude-subdir --skip-license
|
||||
|
||||
- name: Test Install with Modulefile
|
||||
timeout-minutes: 15
|
||||
shell: bash
|
||||
run: |
|
||||
set -v
|
||||
source /usr/share/modules/init/$(basename ${SHELL})
|
||||
module use /opt/omnitrace/share/modulefiles
|
||||
module avail
|
||||
module load omnitrace
|
||||
./scripts/test-install.sh --test-omnitrace=1 --test-omnitrace-avail=1 --test-omnitrace-sample=1 --test-omnitrace-python=1 --test-omnitrace-rewrite=1 --test-omnitrace-runtime=1 --test-omnitrace-critical-trace=1
|
||||
|
||||
- name: Test User API
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
set -v
|
||||
./scripts/test-find-package.sh --install-dir /opt/omnitrace
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ctest-${{ github.job }}-log
|
||||
path: |
|
||||
build/*.log
|
||||
|
||||
- name: Data Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: data-${{ github.job }}-files
|
||||
path: |
|
||||
build/omnitrace-tests-config/*.cfg
|
||||
build/omnitrace-tests-output/**/*.txt
|
||||
build/omnitrace-tests-output/**/*-instr*.json
|
||||
Ссылка в новой задаче
Block a user