Sampling service (#302) #2529
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] | |
env: | |
APT_PACKAGE: gcc g++ ruby ruby-dev elfutils libelf-dev libpopt-dev libdw-dev libprotobuf-dev protobuf-compiler valgrind libglib2.0-dev libnuma-dev liburcu-dev | |
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"]' | |
efficios_dep: | |
needs: pre_job | |
if: ${{ needs.pre_job.outputs.should_skip != 'true' }} | |
name: Build and Cache Efficios Dependencies | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/cache@v4 | |
id: efficios_dep | |
env: | |
cache-name: cache-efficios_dep | |
with: | |
path: ~/efficios_dep/ | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- name: Set PKG_CONFIG | |
run: | | |
echo "PKG_CONFIG_PATH=$HOME/efficios_dep/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
if: steps.efficios_dep.outputs.cache-hit != 'true' | |
- run: sudo apt update; sudo apt install -y $APT_PACKAGE | |
if: steps.efficios_dep.outputs.cache-hit != 'true' | |
# lttng-ust | |
- run: git clone https://github.com/lttng/lttng-ust | |
if: steps.efficios_dep.outputs.cache-hit != 'true' | |
- name: Install lttng-ust | |
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/efficios_dep/ | |
make -j$(nproc) | |
make install | |
working-directory: lttng-ust | |
if: steps.efficios_dep.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.efficios_dep.outputs.cache-hit != 'true' | |
- name: Install lttng-tools | |
run: | | |
./bootstrap | |
./configure --disable-man-pages --disable-bin-lttng-crash --prefix=$HOME/efficios_dep | |
make -j$(nproc) | |
make install | |
#Todo, this will need to be added in the spack repo as a patch | |
echo "#!/usr/bin/env python"| cat - dirwatch.py > $HOME/efficios_dep/bin/dirwatch.py | |
chmod 755 $HOME/efficios_dep/bin/dirwatch.py | |
working-directory: lttng-tools | |
if: steps.efficios_dep.outputs.cache-hit != 'true' | |
# babeltrace | |
- run: git clone -b anl-ms3 git://git.efficios.com/deliverable/babeltrace.git | |
if: steps.efficios_dep.outputs.cache-hit != 'true' | |
- name: Install Babeltrace | |
run: | | |
#Todo, grab file from Spack | |
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 | |
./bootstrap | |
./configure --disable-man-pages --prefix=$HOME/efficios_dep | |
make -j$(nproc) | |
make install | |
working-directory: babeltrace | |
if: steps.efficios_dep.outputs.cache-hit != 'true' | |
build-and-check: | |
needs: [efficios_dep, 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: efficios_dep | |
env: | |
cache-name: cache-efficios_dep | |
with: | |
path: ~/efficios_dep/ | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- run: sudo apt update; sudo apt install -y $APT_PACKAGE | |
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel | |
- name: Load Babeltrace2 | |
run: | | |
echo "$HOME/efficios_dep/bin" >> $GITHUB_PATH | |
echo "PKG_CONFIG_PATH=$HOME/efficios_dep/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
echo "CPATH=$HOME/efficios_dep/include:$CPATH" >> $GITHUB_ENV | |
echo "LD_LIBRARY_PATH=$HOME/efficios_dep/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "LIBRARY_PATH=$HOME/efficios_dep/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: [efficios_dep, 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: efficios_dep | |
env: | |
cache-name: cache-efficios_dep | |
with: | |
path: ~/efficios_dep/ | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- run: sudo apt update; sudo apt install -y $APT_PACKAGE | |
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel | |
- name: Load Babeltrace2 | |
run: | | |
echo "$HOME/efficios_dep/bin" >> $GITHUB_PATH | |
echo "PKG_CONFIG_PATH=$HOME/efficios_dep/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
echo "CPATH=$HOME/efficios_dep/include:$CPATH" >> $GITHUB_ENV | |
echo "LD_LIBRARY_PATH=$HOME/efficios_dep/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "LIBRARY_PATH=$HOME/efficios_dep/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: [efficios_dep, 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: efficios_dep | |
env: | |
cache-name: cache-efficios_dep | |
with: | |
path: ~/efficios_dep/ | |
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 $APT_PACKAGE bats coreutils libpocl2 clinfo | |
- run: sudo gem install babeltrace2 opencl_ruby_ffi | |
- name: Load Efficios Dependencies | |
run: | | |
echo "$HOME/efficios_dep/bin" >> $GITHUB_PATH | |
echo "LD_LIBRARY_PATH=$HOME/efficios_dep/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
- name: Integration test | |
run: | | |
bats integration_tests/ | |
build-in-tree-and-check: | |
needs: [efficios_dep, 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: efficios_dep | |
env: | |
cache-name: cache-efficios_dep | |
with: | |
path: ~/efficios_dep/ | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- run: sudo apt update; sudo apt install -y $APT_PACKAGE | |
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel | |
- name: Load Efficios Dependencies | |
run: | | |
echo "$HOME/efficios_dep/bin" >> $GITHUB_PATH | |
echo "PKG_CONFIG_PATH=$HOME/efficios_dep/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
echo "CPATH=$HOME/efficios_dep/include:$CPATH" >> $GITHUB_ENV | |
echo "LD_LIBRARY_PATH=$HOME/efficios_dep/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "LIBRARY_PATH=$HOME/efficios_dep/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: [efficios_dep, 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: efficios_dep | |
env: | |
cache-name: cache-efficios_dep | |
with: | |
path: ~/efficios_dep/ | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- run: sudo apt update; sudo apt install -y $APT_PACKAGE | |
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel | |
- name: Load Efficios Dependencies | |
run: | | |
echo "$HOME/efficios_dep/bin" >> $GITHUB_PATH | |
echo "PKG_CONFIG_PATH=$HOME/efficios_dep/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
echo "CPATH=$HOME/efficios_dep/include:$CPATH" >> $GITHUB_ENV | |
echo "LD_LIBRARY_PATH=$HOME/efficios_dep/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "LIBRARY_PATH=$HOME/efficios_dep/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: [efficios_dep, 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: efficios_dep | |
env: | |
cache-name: cache-efficios_dep | |
with: | |
path: ~/efficios_dep/ | |
key: ${{ runner.os }}-build-${{ env.cache-name }} | |
- run: sudo apt update; sudo apt install -y $APT_PACKAGE | |
- run: sudo gem install cast-to-yaml nokogiri babeltrace2 opencl_ruby_ffi metababel | |
- name: Load Efficios Dependencie | |
run: | | |
echo "$HOME/efficios_dep/bin" >> $GITHUB_PATH | |
echo "PKG_CONFIG_PATH=$HOME/efficios_dep/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
echo "CPATH=$HOME/efficios_dep/include:$CPATH" >> $GITHUB_ENV | |
echo "LD_LIBRARY_PATH=$HOME/efficios_dep/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
echo "LIBRARY_PATH=$HOME/efficios_dep/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 |