Skip to content

Fix daily block run #56

Fix daily block run

Fix daily block run #56

Workflow file for this run

name: Daily Block Run
on:
schedule:
# At the end of every day
- cron: "0 0 * * *"
pull_request:
env:
RANGE_SIZE: 25
SEQUENCER_REV: 1b1b95cae7ae07b9bc778443ca75ee18008a6bc8
jobs:
run:
runs-on: ubuntu-latest
env:
LLVM_SYS_191_PREFIX: /usr/lib/llvm-19/
MLIR_SYS_190_PREFIX: /usr/lib/llvm-19/
TABLEGEN_190_PREFIX: /usr/lib/llvm-19/
RPC_ENDPOINT_TESTNET: ${{ secrets.RPC_ENDPOINT_TESTNET }}
RPC_ENDPOINT_MAINNET: ${{ secrets.RPC_ENDPOINT_MAINNET }}
strategy:
matrix:
block:
- 740000
- 741000
- 742000
- 743000
- 744000
- 745000
- 746000
- 747000
- 748000
- 749000
runner:
- native
- vm
fail-fast: false
defaults:
run:
shell: bash
working-directory: ./starknet-replay
# todo: build first, run later
steps:
# We checkout replay first, as it's the main repository for this workflow
- name: Checkout Replay
uses: actions/checkout@v4
with:
repository: lambdaclass/starknet-replay
path: starknet-replay
# We need native for building the runtime
- name: Checkout Native
uses: actions/checkout@v4
with:
path: cairo_native
# Install dependencies
- uses: ./cairo_native/.github/actions/install-linux-deps
- name: Setup rust env
uses: dtolnay/[email protected]
- name: Retreive cached dependecies
uses: Swatinem/rust-cache@v2
- name: Build Cairo Native Runtime Library
shell: bash
run: |
cd ../cairo_native
make runtime
echo "CAIRO_NATIVE_RUNTIME_LIBRARY=$(pwd)/libcairo_native_runtime.a" > $GITHUB_ENV
- name: Patch dependencies
run: |
# Patches native dependency to local path, to use current cairo native version
DEPENDENCY="cairo-native"
NEW_PATH="../cairo_native"
sed -Ei "s#^($DEPENDENCY *=).*#\1 { path = '$NEW_PATH' }#" Cargo.toml
grep $DEPENDENCY Cargo.toml
# Patches sequencer dependency to specified rev
GIT="https://github.com/lambdaclass/sequencer"
NEW_REV="$SEQUENCER_REV"
sed -Ei "s#(\"$GIT\" *, *rev *= *\").?*(\".*)#\1$NEW_REV\2#" Cargo.toml
grep $GIT Cargo.toml
- name: Run with Native
if: ${{ matrix.runner == 'native' }}
run: |
BLOCK_START=${{ matrix.block }}
BLOCK_END=$(($BLOCK_START + $RANGE_SIZE - 1))
cargo run --release --features state_dump block-range $BLOCK_START $BLOCK_END mainnet
- name: Run with VM
if: ${{ matrix.runner == 'vm' }}
run: |
BLOCK_START=${{ matrix.block }}
BLOCK_END=$(($BLOCK_START + $RANGE_SIZE - 1))
cargo run --release --features state_dump,only_cairo_vm block-range $BLOCK_START $BLOCK_END mainnet
# We always upload the dump, even if the job fails
- name: Upload dumps
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: dump-${{matrix.block}}-${{matrix.runner}}
path: starknet-replay/state_dumps/${{matrix.runner}}
compare:
needs: [run]
runs-on: ubuntu-latest
# We always run the compare job, to ensure that a single run job failing
# would not cancel the whole comparison.
if: ${{ always() }}
strategy:
matrix:
block:
- 740000
- 741000
- 742000
- 743000
- 744000
- 745000
- 746000
- 747000
- 748000
- 749000
fail-fast: false
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- name: Fetch Native dumps
uses: actions/download-artifact@v4
with:
name: dump-${{matrix.block}}-native
path: state_dumps/native
continue-on-error: true
- name: Fetch VM dumps
uses: actions/download-artifact@v4
with:
name: dump-${{matrix.block}}-vm
path: state_dumps/vm
continue-on-error: true
- name: Compare states
run: |
./scripts/cmp_state_dumps.sh | tee output
- name: Prepare env vars
if: ${{ always() }}
run: |
# Save blocks to env var
BLOCK_START=${{ matrix.block }}
BLOCK_END=$(($BLOCK_START + $RANGE_SIZE - 1))
echo "BLOCK_END=$BLOCK_END" | tee -a $GITHUB_ENV
echo "BLOCK_START=$BLOCK_START" | tee -a $GITHUB_ENV
# Save workflow url
REPO_URL="${{ github.server_url }}/${{ github.repository }}"
echo "WORKFLOW_URL=$REPO_URL/actions/runs/${{ github.run_id }}" | tee -a $GITHUB_ENV
# Save output
{
echo 'OUTPUT<<EOF'
cat output
echo EOF
} >> "$GITHUB_ENV"
- name: Create Issue
if: ${{ failure() }}
uses: JasonEtco/create-an-issue@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COMMIT_SHA: ${{ github.sha }}
with:
filename: .github/ISSUE_TEMPLATE/daily_failure.md