Skip to content

feat(starknet_gateway): create transaction generator towards benchmarking #9305

feat(starknet_gateway): create transaction generator towards benchmarking

feat(starknet_gateway): create transaction generator towards benchmarking #9305

Workflow file for this run

name: Papyrus-CI
on:
pull_request:
types:
- opened
- reopened
- synchronize
- auto_merge_enabled
- edited # for when the PR title is edited
paths:
- '.github/workflows/papyrus_ci.yml'
- 'Dockerfile'
- 'papyrus_utilities.Dockerfile'
- 'Cargo.toml'
- 'Cargo.lock'
- 'crates/papyrus**/**'
- 'crates/sequencing/**'
- 'crates/starknet_client/**'
- 'scripts/dependencies.sh'
merge_group:
types: [checks_requested]
env:
RUSTFLAGS: "-D warnings -C link-arg=-fuse-ld=lld"
# On PR events, cancel existing CI runs on this same PR for this workflow.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.job }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
executable-run:
runs-on: starkware-ubuntu-latest-medium
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/bootstrap
- name: Build node
run: |
mkdir data
cargo build -r -p papyrus_node
- name: Run executable
run: >
target/release/papyrus_node --base_layer.node_url ${{ secrets.CI_BASE_LAYER_NODE_URL }}
& sleep 30 ; kill $!
executable-run-no-rpc:
runs-on: starkware-ubuntu-latest-medium
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/bootstrap
- name: Build node
run: |
mkdir data
cargo build -r -p papyrus_node --no-default-features
- name: Run executable
run: >
target/release/papyrus_node --base_layer.node_url ${{ secrets.CI_BASE_LAYER_NODE_URL }}
& sleep 30 ; kill $!
# FIXME: Job is currently running out of disk space, error is hidden inside the `Annoatations`
# tab on github. FIX THE ISSUE AND RE-ENABLE THE JOB.
# p2p-sync-e2e-test:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: ./.github/actions/bootstrap
# - name: Build node
# run: cargo build -r -p papyrus_node
# - name: Run p2p sync end-to-end test
# run: scripts/papyrus/p2p_sync_e2e_test/main.sh ${{ secrets.CI_BASE_LAYER_NODE_URL }}
integration-test:
runs-on: starkware-ubuntu-latest-medium
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/bootstrap
- run: >
cargo test -r
--test latency_histogram
--test gateway_integration_test
--test feeder_gateway_integration_test
-- --include-ignored --skip test_gw_integration_testnet;
cargo run -r -p papyrus_node --bin central_source_integration_test --features="futures-util tokio-stream"
test-no-rpc:
runs-on: starkware-ubuntu-latest-medium
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/bootstrap
- run: |
cargo test -p papyrus_node --no-default-features
env:
SEED: 0
build-papyrus-utilities-image:
runs-on: starkware-ubuntu-latest-medium
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Papyrus utilites docker image
uses: docker/[email protected]
continue-on-error: true # ignore the failure of a step and avoid terminating the job.
with:
push: false
context: .
file: papyrus_utilities.Dockerfile
cache-from: type=gha,scope=buildkit-ci
cache-to: type=gha,mode=max,scope=buildkit-ci
random-table-test:
runs-on: starkware-ubuntu-latest-medium
steps:
- uses: actions/checkout@v4
# run this job only if the path 'crates/papyrus_storage/src/db/**' is changed, because it takes around 2 minutes.
- uses: dorny/paths-filter@v3
id: changes
with:
# The 'base' and 'ref' parameters are set to be able to run the job in a 'merge_group' event. in a 'pull_request' event
# those parameters are ignored.
base: ${{ github.event.merge_group.base_ref}}
ref: ${{ github.event.merge_group.head_ref }}
filters: |
target_directory:
- 'crates/papyrus_storage/src/db/**'
- uses: ./.github/actions/bootstrap
# repeat this job 32 times. this is a random test for part of the code that may cause a corrupted database.
- run: for run in {1..32}; do cargo test -r -p papyrus_storage -- --include-ignored common_prefix_compare_with_simple_table_random; done
if: steps.changes.outputs.target_directory == 'true'