Skip to content

Archive

Archive #2364

Workflow file for this run

name: Presubmit
on: [push, pull_request]
jobs:
pre_job:
runs-on: ubuntu-24.04
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 urcu and lttng-tools
runs-on: ubuntu-24.04
steps:
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.5
key: ${{ runner.os }}-build-${{ env.cache-name }}
- name: Load Env
run: |
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.5/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
- run: sudo apt update; sudo apt install -y gcc g++ libpopt-dev libnuma-dev liburcu-dev libc-dev libglib2.0-dev elfutils libelf-dev libdw-dev libnuma-dev
if: steps.babeltrace2.outputs.cache-hit != 'true'
# lttng-ust
- run: git clone https://github.com/lttng/lttng-ust
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: |
# Avoid https://github.com/lttng/lttng-ust/commit/b187bcd5d99cde54dececee0e5028524d55aa314 who change the signature of
# lttng_ust_ctl_recv_register_event used by lttng-tool anl-ms3
git checkout 4f8afc535e77070f1ef00434674f0417c6f9ef69
./bootstrap
./configure --disable-man-pages --prefix=$HOME/babeltrace2/2.0.5
make -j$(nproc)
make install
working-directory: lttng-ust
if: steps.babeltrace2.outputs.cache-hit != 'true'
# lttng-tools need lttng-ust 2.14+
- run: git clone -b anl-ms3 git://git.efficios.com/deliverable/lttng-tools.git
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: |
./bootstrap
./configure --disable-man-pages --disable-bin-lttng-crash --prefix=$HOME/babeltrace2/2.0.5
make -j$(nproc)
make install
working-directory: lttng-tools
if: steps.babeltrace2.outputs.cache-hit != 'true'
# babeltrace
- run: git clone -b anl-ms3 git://git.efficios.com/deliverable/babeltrace.git
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: |
wget https://raw.githubusercontent.com/argonne-lcf/THAPI/53262fcaaaf45d7d475884d7e63b69abe47e41d6/.github/workflows/str_nullptr.patch
patch -p1 < str_nullptr.patch
wget https://raw.githubusercontent.com/argonne-lcf/THAPI/4418916620496fd66cde0b3d5e241bed0a4c18a3/.github/workflows/bt_makefile.patch
patch -p1 < bt_makefile.patch
working-directory: babeltrace
if: steps.babeltrace2.outputs.cache-hit != 'true'
- run: |
./bootstrap
./configure --disable-man-pages --prefix=$HOME/babeltrace2/2.0.5
make -j$(nproc)
make install
working-directory: babeltrace
if: steps.babeltrace2.outputs.cache-hit != 'true'
build-and-check:
needs: [babeltrace2, pre_job]
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build and Check ubuntu-24.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.5
key: ${{ runner.os }}-build-${{ env.cache-name }}
- run: sudo apt update; sudo apt install -y gcc g++ ruby ruby-dev elfutils libelf-dev libdw-dev libprotobuf-dev protobuf-compiler valgrind libglib2.0-dev libnuma-dev liburcu-dev
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.5/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.5/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.5/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.5/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.5/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-24.04
steps:
- uses: actions/checkout@v4
- uses: mpi4py/setup-mpi@v1
with:
mpi: intelmpi
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.5
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 libglib2.0-dev libnuma-dev
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.5/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.5/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.5/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.5/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.5/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-24.04
env:
THAPI_TEST_BIN: clinfo
THAPI_BIN_DIR: ./build/ici/bin
steps:
- uses: actions/checkout@v4
- uses: mpi4py/setup-mpi@v1
with:
mpi: intelmpi
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.5
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 libglib2.0-dev libnuma-dev
- run: sudo gem install babeltrace2 opencl_ruby_ffi
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.5/bin" >> $GITHUB_PATH
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.5/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
- name: Integration test
run: |
bats integration_tests/
build-in-tree:
needs: [babeltrace2, pre_job]
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build in Tree ubuntu-24.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.5
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 libglib2.0-dev libnuma-dev
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.5/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.5/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.5/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.5/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.5/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-24.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.5
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 libglib2.0-dev libnuma-dev
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.5/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.5/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.5/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.5/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.5/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-24.04
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: babeltrace2
env:
cache-name: cache-babeltrace2
with:
path: ~/babeltrace2/2.0.5
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 libglib2.0-dev libnuma-dev
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel
- name: Load Babeltrace2
run: |
echo "$HOME/babeltrace2/2.0.5/bin" >> $GITHUB_PATH
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.5/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
echo "CPATH=$HOME/babeltrace2/2.0.5/include:$CPATH" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$HOME/babeltrace2/2.0.5/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "LIBRARY_PATH=$HOME/babeltrace2/2.0.5/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: 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