Skip to content

Merge pull request #548 from kroma-network/perf/reduce-redundant-zero… #3751

Merge pull request #548 from kroma-network/perf/reduce-redundant-zero…

Merge pull request #548 from kroma-network/perf/reduce-redundant-zero… #3751

Workflow file for this run

name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest-xlarge]
build_flag: [fastbuild, opt]
openmp: ["openmp", "no-openmp"]
include:
- os: ubuntu-latest
bazel_config: linux
- os: macos-latest-xlarge
bazel_config: macos_arm64
- openmp: "openmp"
has_openmp: "--//:has_openmp"
exclude:
- build_flag: fastbuild
openmp: "openmp"
runs-on: ${{ matrix.os }}
steps:
- name: Free up space on linux
if: matrix.os == 'ubuntu-latest'
run: |
df -h
rm -rf /usr/share/dotnet/
rm -rf /opt/hostedtoolcache
df -h
- name: Free up space on macos
if: matrix.os == 'macos-latest-xlarge'
run: |
df -h
sudo rm -rf ~/Library/Caches/*
df -h
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Bazel
uses: bazel-contrib/setup-bazel@0.8.5
with:
# Avoid downloading Bazel every time.
bazelisk-cache: true
# Share a single build cache between workflows.
disk-cache: ${{ matrix.os }}-${{ matrix.build_flag }}-${{ matrix.openmp }}
# Share repository cache between workflows.
repository-cache: false
# Cache external repositories
external-cache: false
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install numpy
run: python3 -m pip install numpy
- name: Install OpenMP on linux
if: matrix.os == 'ubuntu-latest' && matrix.openmp == 'openmp'
run: sudo apt-get install -y libomp-dev
- name: Install OpenMP on macos
if: matrix.os == 'macos-latest-xlarge' && matrix.openmp == 'openmp'
run: brew install libomp
- name: Add .bazelrc.user on linux
if: matrix.os == 'ubuntu-latest'
run: echo "build --config linux" > .bazelrc.user &&
echo "build --action_env=CARGO=$HOME/.cargo/bin/cargo" >> .bazelrc.user &&
echo "build --@rules_rust//rust/toolchain/channel=nightly" >> .bazelrc.user
- name: Add .bazelrc.user on macos
if: matrix.os == 'macos-latest-xlarge'
run: brew install coreutils &&
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH" &&
echo "build --config macos_arm64" > .bazelrc.user &&
echo "build --action_env=CARGO=$HOME/.cargo/bin/cargo" >> .bazelrc.user &&
echo "build --@rules_rust//rust/toolchain/channel=nightly" >> .bazelrc.user
- name: Build
run: bazel build -c ${{ matrix.build_flag }} ${{ matrix.has_openmp }} //...
- name: Test
# NOTE(chokobole): Test timeouts are overridden 1.5x of the default timeout due to timeout failure on GitHub Actions.
# See https://github.com/kroma-network/tachyon/actions/runs/9581476338/job/26418352737.
run: bazel test -c ${{ matrix.build_flag }} ${{ matrix.has_openmp }} --test_output=errors --test_tag_filters -benchmark,-manual,-cuda //... --test_timeout=90,450,1350,5400
- name: Test Node Binding
run: |
cd tachyon/node/test
bazel test --config ${{ matrix.bazel_config }} -c ${{ matrix.build_flag}} --test_output=errors //...
- name: Test Py Binding
run: |
cd tachyon/py/test
bazel test --config ${{ matrix.bazel_config }} -c ${{ matrix.build_flag}} --test_output=errors //...
- name: Test Circom
run: |
cd vendors/circom
CARGO_BAZEL_REPIN=true bazel test --config ${{ matrix.bazel_config }} -c ${{ matrix.build_flag}} --test_output=errors //...
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Git
run: |
git config --global user.name 'github-actions'
git config --global user.email 'github-actions@github.com'
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
git fetch --all
- name: Setup Python for cpplint
uses: actions/setup-python@v5
with:
python-version: "3.10.12"
- name: Install cpplint
run: pip install cpplint
- name: Run cpplint
if: github.event_name == 'pull_request'
run: git diff --name-status HEAD origin/${{ github.base_ref }} | cut -f 2,3 | xargs cpplint --filter=-legal/copyright,-whitespace/line_length,-whitespace/indent_namespace,-build/namespaces,-runtime/references
- name: Run clang-format lint
uses: jidicula/clang-format-action@v4.11.0
with:
clang-format-version: "17"
check-path: "."
- name: Install Buildifier
run: |
wget https://github.com/bazelbuild/buildtools/releases/download/v6.4.0/buildifier-linux-amd64
chmod +x buildifier-linux-amd64
sudo mv buildifier-linux-amd64 /usr/local/bin/buildifier
- name: Run Buildifier
run: |
find . -iname "*.bazel" -o -iname "*.bzl" -o -name "WORKSPACE" -o -iname "*.BUILD" | xargs buildifier --lint=fix
find . -iname "*.bazel" -o -iname "*.bzl" -o -name "WORKSPACE" -o -iname "*.BUILD" | xargs buildifier --mode=check
git diff --exit-code