Update presubmit.yml #2311
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"]' | ||
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 | ||
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 babeltrace2-2.0.5 | ||
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 | ||
working-directory: babeltrace2-2.0.5 | ||
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: babeltrace2-2.0.5 | ||
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 | ||
- 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 | ||
- 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 | ||
- 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 | ||
- 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 | ||
- 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 |