Skip to content

Better muxer

Better muxer #2104

Workflow file for this run

name: Presubmit
on: [push, pull_request]
jobs:
pre_job:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@master
with:
concurrent_skipping: 'same_content'
skip_after_successful_duplicate: 'true'
paths_ignore: '["**/README.md"]'
do_not_skip: '["pull_request"]'
babeltrace2:
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build and cache Babeltrace2
runs-on: ubuntu-latest
steps:
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.4
key: ${{ runner.os }}-build-${{ env.cache-name }}
- run: sudo apt update; sudo apt install -y gcc g++ lttng-tools liblttng-ust-dev ruby ruby-dev elfutils libelf-dev libdw-dev libprotobuf-dev protobuf-compiler
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: wget https://www.efficios.com/files/babeltrace/babeltrace2-2.0.4.tar.bz2
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: tar -xjvf babeltrace2-2.0.4.tar.bz2
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: |
wget https://github.com/argonne-lcf/THAPI-spack/raw/main/packages/babeltrace2/d2d2e6cc.patch
wget https://github.com/argonne-lcf/THAPI-spack/raw/main/packages/babeltrace2/0db1832.patch
patch -p1 < d2d2e6cc.patch
patch -p1 < 0db1832.patch
if: steps.babeltrace2.outputs.cache-hit != 'true'
working-directory: babeltrace2-2.0.4
- run: mkdir -p babeltrace2-2.0.4/build
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: ../configure --prefix=$HOME/babeltrace2/2.0.4
if: steps.babeltrace2.outputs.cache-hit != 'true'
working-directory: babeltrace2-2.0.4/build
- run: make -j
if: steps.babeltrace2.outputs.cache-hit != 'true'
working-directory: babeltrace2-2.0.4/build
- run: make -j install
if: steps.babeltrace2.outputs.cache-hit != 'true'
working-directory: babeltrace2-2.0.4/build
build-and-check:
needs: [babeltrace2, pre_job]
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build and Check ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.4
key: ${{ runner.os }}-build-${{ env.cache-name }}
- run: sudo apt update; sudo apt install -y gcc g++ lttng-tools liblttng-ust-dev ruby ruby-dev elfutils libelf-dev libdw-dev libprotobuf-dev protobuf-compiler valgrind
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.4/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.4/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.4/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LIBRARY_PATH" >> $GITHUB_ENV
- run: mkdir -p build
- run: ./autogen.sh
- run: ../configure
working-directory: build
- run: make -j
working-directory: build
- run: make check
working-directory: build
env:
THAPI_VALGRIND: 1
- uses: actions/upload-artifact@v3
if: failure()
with:
name: build-and-check
path: |
build/**/*.log
build/config.log
build/**/tests/*.log
install_with_mpi:
needs: [babeltrace2, pre_job]
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Install with MPI daemon support
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: mpi4py/setup-mpi@v1
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.4
key: ${{ runner.os }}-build-${{ env.cache-name }}
- run: sudo apt update; sudo apt install -y gcc g++ lttng-tools liblttng-ust-dev ruby ruby-dev elfutils libelf-dev libdw-dev libprotobuf-dev protobuf-compiler
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.4/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.4/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.4/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LIBRARY_PATH" >> $GITHUB_ENV
- run: mkdir -p build
- run: ./autogen.sh
- run: ../configure --prefix=`pwd`/ici
working-directory: build
- run: make -j install
working-directory: build
- name: Tar THAPI # https://github.com/actions/download-artifact?tab=readme-ov-file#permission-loss
run: tar -cvf thapi.tar ./build/ici/
- uses: actions/upload-artifact@v4
with:
name: thapi-bin
path: thapi.tar
integration-tests:
needs: [babeltrace2, pre_job, install_with_mpi]
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Integration ${{ matrix.bats_file }} ${{matrix.thapi_sync_daemon }}
runs-on: ubuntu-latest
strategy:
matrix:
thapi_sync_daemon: ['fs', 'mpi']
bats_file: ['mpi_sync_daemon', 'mpi_iprof']
include:
- bats_file: 'iprof'
thapi_sync_daemon: 'fs' # Need to force, if not `THAPI_SYNC_DAEMON` will be set to empty list
env:
THAPI_TEST_BIN: clinfo
THAPI_BIN_DIR: ./build/ici/bin
THAPI_SYNC_DAEMON: ${{ matrix.thapi_sync_daemon }}
steps:
- uses: actions/checkout@v4
- uses: mpi4py/setup-mpi@v1
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.4
key: ${{ runner.os }}-build-${{ env.cache-name }}
- uses: actions/download-artifact@v4
with:
name: thapi-bin
- name: Untar THAPI
run: tar -xvf thapi.tar
- run: sudo apt update; sudo apt install -y lttng-tools liblttng-ust-dev ruby ruby-dev libprotobuf-dev libpocl2 clinfo bats coreutils
- run: sudo gem install babeltrace2 opencl_ruby_ffi
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.4/bin" >> $GITHUB_PATH
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
- name: integration test ${{ matrix.bats_file }}
run: |
bats integration_tests/${{ matrix.bats_file }}.bats
build-in-tree:
needs: [babeltrace2, pre_job]
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build in Tree ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.4
key: ${{ runner.os }}-build-${{ env.cache-name }}
- run: sudo apt update; sudo apt install -y gcc g++ lttng-tools liblttng-ust-dev ruby ruby-dev elfutils libelf-dev libdw-dev libprotobuf-dev protobuf-compiler valgrind
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.4/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.4/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.4/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LIBRARY_PATH" >> $GITHUB_ENV
- run: ./autogen.sh
- run: ./configure
- run: make -j
- run: make check
env:
THAPI_VALGRIND: 1
- uses: actions/upload-artifact@v3
if: failure()
with:
name: build-in-tree
path: |
./**/*.log
./config.log
./**/tests/*.log
distcheck:
needs: [babeltrace2, pre_job]
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Distcheck ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.4
key: ${{ runner.os }}-build-${{ env.cache-name }}
- run: sudo apt update; sudo apt install -y gcc g++ lttng-tools liblttng-ust-dev ruby ruby-dev elfutils libelf-dev libdw-dev libprotobuf-dev protobuf-compiler valgrind
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.4/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.4/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.4/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LIBRARY_PATH" >> $GITHUB_ENV
- run: mkdir -p build
- run: ./autogen.sh
- run: ../configure
working-directory: build
- run: make distcheck -j
working-directory: build
env:
THAPI_VALGRIND: 1
dist-check:
needs: [babeltrace2, pre_job]
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Dist and Check ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.4
key: ${{ runner.os }}-build-${{ env.cache-name }}
- run: sudo apt update; sudo apt install -y gcc g++ lttng-tools liblttng-ust-dev ruby ruby-dev elfutils libelf-dev libdw-dev libprotobuf-dev protobuf-compiler valgrind
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.4/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.4/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.4/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.4/lib:$LIBRARY_PATH" >> $GITHUB_ENV
- run: mkdir -p build
- run: ./autogen.sh
- run: ../configure
working-directory: build
- run: make dist
working-directory: build
- name: extract
run: tar -xzvf thapi-*
working-directory: build
- name: configure
run: |
cd `find . -type d -name "thapi-*"`
mkdir -p build
cd build
../configure
working-directory: build
- name: make -j check
run: |
cd `find . -type d -name "thapi-*"`
cd build
make -j check
working-directory: build
env:
THAPI_VALGRIND: 1
- uses: actions/upload-artifact@v3
if: failure()
with:
name: dist-check
path: |
build/**/*.log
build/config.log
build/**/tests/*.log