Skip to content

feat(req-limit): implement request limiting for trace generation and line counting #3516

feat(req-limit): implement request limiting for trace generation and line counting

feat(req-limit): implement request limiting for trace generation and line counting #3516

Workflow file for this run

name: gradle
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
inputs:
tests-with-ssh:
description: Run tests with ability to ssh into environment
required: false
type: boolean
default: false
env:
CARGO_NET_GIT_FETCH_WITH_CLI: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v4
- name: Set up GCC
uses: egor-tensin/setup-gcc@v1
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: 21
distribution: temurin
- name: Build without tests
run: ./gradlew build -x test -x spotlessCheck
env:
JAVA_OPTS: -Xmx2g -Dorg.gradle.daemon=false
- name: Store distribution artifacts
uses: actions/upload-artifact@v3
with:
name: distributions
path: arithmetization/build/libs
- name: Run spotless
run: ./gradlew --no-daemon --parallel clean spotlessCheck
tests:
needs: [ build ]
runs-on: ubuntu-latest-32
steps:
- name: Setup upterm session
if: ${{ inputs.tests-with-ssh }}
uses: lhotari/action-upterm@v1
- uses: webfactory/[email protected]
with:
ssh-private-key: |
${{ secrets.CONSTRAINTS_SSH_KEY }}
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: false
- name: Get Submodules
run: git submodule update --init --recursive linea-constraints
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: 21
distribution: temurin
- name: Install Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
# The asset URL for the latest release can be found with:
# curl -L -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer YOUR_GH_API_TOKEN" \
# -H "X-GitHub-Api-Version: 2022-11-28" \
# https://api.github.com/repos/ConsenSys/corset/releases/latest
# | jq '.assets[] | select(.name|endswith("x86_64-unknown-linux-musl.tar.gz")) | .url'
- name: Install Corset
run: RUSTFLAGS=-Awarnings cargo install --git ssh://[email protected]/ConsenSys/corset --tag v9.7.13 --locked --force
# run: |
# curl -L \
# -H "Accept: application/octet-stream" \
# -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
# -H "X-GitHub-Api-Version: 2022-11-28" \
# -o corset.tar.gz \
# https://api.github.com/repos/Consensys/corset/releases/assets/151396061
# tar xzf corset.tar.gz
# mv corset $HOME
# echo $HOME >> $GITHUB_PATH
- name: Run unit tests
run: ./gradlew :arithmetization:test --stacktrace
env:
JAVA_OPTS: -Dorg.gradle.daemon=false
CORSET_FLAGS: fields,expand,expand,expand
- name: Run Replay tests
run: ./gradlew :arithmetization:fastReplayTests --stacktrace
env:
JAVA_OPTS: -Dorg.gradle.daemon=false
CORSET_FLAGS: fields,expand,expand,expand
REPLAY_TESTS_PARALLELISM: 2
- name: Upload test report
if: always()
uses: actions/upload-artifact@v3
with:
name: unit-test-report
path: arithmetization/build/reports/tests/**/*
go-corset-tests:
needs: [ build ]
runs-on: ubuntu-latest-32
continue-on-error: true
steps:
- name: Setup upterm session
if: ${{ inputs.tests-with-ssh }}
uses: lhotari/action-upterm@v1
- uses: webfactory/[email protected]
with:
ssh-private-key: |
${{ secrets.CONSTRAINTS_SSH_KEY }}
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: false
- name: Get Submodules
run: git submodule update --init --recursive linea-constraints
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: 21
distribution: temurin
- name: Install Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install Corset
run: RUSTFLAGS=-Awarnings cargo install --git ssh://[email protected]/ConsenSys/corset --tag v9.7.13 --locked --force
- name: Install Go
uses: actions/setup-go@v4
- name: Install Go Corset
run:
go install github.com/consensys/go-corset/cmd/go-corset@latest
- name: Run unit tests
run: GOMEMLIMIT=196GiB ./gradlew :arithmetization:test
env:
JAVA_OPTS: -Dorg.gradle.daemon=false
CORSET_FLAGS: disable
GOCORSET_FLAGS: -wd --ansi-escapes=false --report --air
- name: Run replay tests
run: GOMEMLIMIT=196GiB ./gradlew :arithmetization:fastReplayTests
env:
JAVA_OPTS: -Dorg.gradle.daemon=false
CORSET_FLAGS: disable
GOCORSET_FLAGS: -wd --ansi-escapes=false --report --air