Skip to content

[Feat] add ucx based transport layer #35

[Feat] add ucx based transport layer

[Feat] add ucx based transport layer #35

Workflow file for this run

# Copyright (c) 2025 ByteDance Ltd. and/or its affiliates
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: PrisKV CI
on:
push:
branches: [ "main", "release-*" ]
paths-ignore:
- 'docker/'
- 'man/'
- '**/*.spec'
- '**/*.md'
- '**/*.txt'
pull_request:
branches: [ "main" ]
paths-ignore:
- 'docker/'
- 'man/'
- '**/*.spec'
- '**/*.md'
- '**/*.txt'
workflow_dispatch:
concurrency:
group: ${{ github.repository }}-${{ github.event.number || github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
ci:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
python-version: ["3.11", "3.12"]
env:
CMAKE_POLICY_VERSION_MINIMUM: 3.5
steps:
- name: Free Disk Space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
- name: Pre Clean
run: |
find . -type f \( -name '*.d' -o -name '*.o' -o -name 'a.out' -o -name '*.exe' \) -delete
- name: Set Up Python Environment ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Check Out Code
uses: actions/checkout@v4
with:
submodules: true
- name: Submodule Summary
run: |
git submodule > git-modules.txt
cat git-modules.txt
- name: Install Dependencies
run: |
sudo apt update -y
sudo apt install -y ca-certificates \
gcc \
g++ \
make \
binutils \
libibverbs-dev \
librdmacm-dev \
libevent-dev \
libssl-dev \
libmount-dev \
libncurses5-dev \
libonig-dev \
libhiredis-dev \
liburing-dev
# install cmake
cd /tmp && \
wget -q https://cmake.org/files/v4.1/cmake-4.1.3-linux-x86_64.sh && \
sudo bash cmake-4.1.3-linux-x86_64.sh --skip-license --prefix=/usr && \
rm cmake-4.1.3-linux-x86_64.sh && \
cd -
# libevhtp uses TestEndianess.c.in
sudo ln -s /usr/share/cmake-4.1/Modules/TestEndianness.c.in /usr/share/cmake-4.1/Modules/TestEndianess.c.in
# install ucx
cd /tmp && \
wget -q https://github.com/openucx/ucx/releases/download/v1.19.0/ucx-1.19.0-ubuntu22.04-mofed5-cuda12-x86_64.tar.bz2 && \
tar xvf ucx-1.19.0-ubuntu22.04-mofed5-cuda12-x86_64.tar.bz2 && \
sudo dpkg -i ucx-1.19.0.deb ucx-cuda-1.19.0.deb ucx-xpmem-1.19.0.deb && \
rm /tmp/ucx-1.19.0-ubuntu22.04-mofed5-cuda12-x86_64.tar.bz2 /tmp/ucx-1.19.0.deb /tmp/ucx-cuda-1.19.0.deb /tmp/ucx-xpmem-1.19.0.deb && \
cd -
# install clang-format-19
sudo curl -fsSL --retry 3 --retry-delay 2 https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-46b8640/clang-format-19_linux-amd64 -o /usr/bin/clang-format-19 || { echo "ERROR: Failed to download clang-format-19"; exit 1; }
test -s /usr/bin/clang-format-19 || { echo "ERROR: Downloaded file is empty"; exit 1; }
sudo chmod +x /usr/bin/clang-format-19
/usr/bin/clang-format-19 --version >/dev/null 2>&1 || { echo "ERROR: Downloaded clang-format-19 is not executable or invalid"; exit 1; }
# install python dependencies
pip install -r requirements.txt
- name: Format Check
run: |
make format
- name: Build
run: |
make
make test
- name: Unit Tests
run: |
python -u run_unit_test.py --no-parallel
- name: E2E Tests
run: |
python -u run_e2e_test.py