Skip to content

Merge pull request #557 from kroma-network/fix/witness_generator_tool… #3809

Merge pull request #557 from kroma-network/fix/witness_generator_tool…

Merge pull request #557 from kroma-network/fix/witness_generator_tool… #3809

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]
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 }}-build
# 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.build_flag == 'opt'
run: sudo apt-get install -y libomp-dev
- name: Install OpenMP on macos
if: matrix.os == 'macos-latest-xlarge' && matrix.build_flag == 'opt'
run: brew install libomp
- name: Add .bazelrc.user on linux
if: matrix.os == 'ubuntu-latest'
run: 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 --action_env=CARGO=$HOME/.cargo/bin/cargo" >> .bazelrc.user &&
echo "build --@rules_rust//rust/toolchain/channel=nightly" >> .bazelrc.user
- name: Build
run: bazel build --config ${{ matrix.build_flag }} //...
- 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 --config ${{ matrix.build_flag }} --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 -c ${{ matrix.build_flag}} --test_output=errors //...
- name: Test Py Binding
run: |
cd tachyon/py/test
bazel test -c ${{ matrix.build_flag}} --test_output=errors //...
- name: Test Circom
run: |
cd vendors/circom
CARGO_BAZEL_REPIN=true bazel test --config ${{ 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