Update presubmit.yml #2293
Workflow file for this run
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: 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"]' | |
userspace-rcu: | |
needs: pre_job | |
if: ${{ needs.pre_job.outputs.should_skip != 'true' }} | |
name: Build urcu and lttng-tools | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Load Env | |
run: | | |
echo "PKG_CONFIG_PATH=$HOME/babeltrace2/2.0.4/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
- run: ls /usr/include/ | |
- run: sudo apt update; sudo apt install -y gcc g++ libpopt-dev libnuma-dev liburcu-dev libc-dev | |
#- run: git clone -b stable-0.14 https://github.com/urcu/userspace-rcu | |
#- run: | | |
# ./bootstrap | |
# ./configure --prefix=$HOME/babeltrace2/2.0.4 | |
# make -j 32 install | |
# working-directory: userspace-rcu | |
# Not yet any release for 2.14, so take master | |
- run: git clone https://github.com/lttng/lttng-ust | |
- run: | | |
./bootstrap | |
./configure --disable-man-pages --prefix=$HOME/babeltrace2/2.0.4 | |
make -j | |
make install | |
working-directory: lttng-ust | |
# lttng-tools need lttng-ust 2.14+ | |
- run: git clone -b anl-ms3 git://git.efficios.com/deliverable/lttng-tools.git | |
- run: | | |
./bootstrap | |
./configure --disable-man-pages --disable-bin-lttng-crash --prefix=$HOME/babeltrace2/2.0.4 | |
make -j | |
make install | |
working-directory: lttng-tools | |
babeltrace2: | |
needs: [pre_job,userspace-rcu] | |
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' | |
- name: Load Env | |
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: git clone -b anl-ms3 git://git.efficios.com/deliverable/babeltrace.git babeltrace2-2.0.4 | |
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 | |
if: steps.babeltrace2.outputs.cache-hit != 'true' | |
working-directory: babeltrace2-2.0.4 | |
- run: ./bootstrap | |
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 | |
with: | |
mpi: intelmpi | |
- 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 | |
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.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 | |
run: | | |
bats integration_tests/ | |
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: 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 |