-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into add-trace-dump-contracts
- Loading branch information
Showing
106 changed files
with
4,703 additions
and
3,711 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
title: "Daily Workflow Failure: Block Range {{ env.BLOCK_START }}-{{ env.BLOCK_END }}" | ||
labels: bug | ||
--- | ||
|
||
Comparing VM execution against Native in the given block range produced diffs: | ||
|
||
- Commit: {{ env.COMMIT_SHA }} | ||
- Block Start: {{ env.BLOCK_START }} | ||
- Block End: {{ env.BLOCK_END }} | ||
- Workflow URL: {{ env.WORKFLOW_URL }} | ||
|
||
## Compare Output | ||
|
||
The transaction were not compared in order. You should rerun the whole block to find the error root | ||
|
||
``` | ||
{{ env.OUTPUT }} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
name: 'Install Linux Dependencies' | ||
runs: | ||
using: "composite" | ||
steps: | ||
- name: Free HDD space | ||
shell: bash | ||
run: | | ||
echo "Listing 20 largest packages" | ||
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 20 | ||
df -h | ||
sudo apt-get update | ||
sudo apt-get remove -y '^llvm-.*' | ||
sudo apt-get remove -y 'php.*' | ||
sudo apt-get remove -y '^dotnet-.*' | ||
sudo apt-get remove -y '^temurin-.*' | ||
sudo apt-get remove -y azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox powershell mono-devel | ||
sudo apt-get autoremove -y | ||
sudo apt-get clean | ||
df -h | ||
echo "Removing large directories" | ||
# deleting 15GB | ||
sudo rm -rf /usr/share/dotnet/ | ||
sudo rm -rf /usr/local/lib/android | ||
df -h | ||
- name: Add LLVM Debian repository | ||
uses: myci-actions/add-deb-repo@11 | ||
with: | ||
repo: deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main | ||
repo-name: llvm-repo | ||
keys-asc: https://apt.llvm.org/llvm-snapshot.gpg.key | ||
- name: Update and upgrade APT | ||
shell: bash | ||
run: sudo apt-get update && sudo apt-get upgrade -y | ||
- name: Install LLVM | ||
shell: bash | ||
run: sudo apt-get install llvm-19 llvm-19-dev llvm-19-runtime clang-19 clang-tools-19 lld-19 libpolly-19-dev libmlir-19-dev mlir-19-tools |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,234 @@ | ||
name: Daily Block Run | ||
|
||
on: | ||
schedule: | ||
# At the end of every day | ||
- cron: "0 0 * * *" | ||
|
||
env: | ||
RANGE_SIZE: 25 | ||
SEQUENCER_REV: 93b6da848802297626556950a0c715952aca552d | ||
|
||
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 | ||
- 800000 | ||
- 800050 | ||
- 800100 | ||
- 800150 | ||
- 800200 | ||
- 800250 | ||
- 800300 | ||
- 800350 | ||
- 800400 | ||
- 800450 | ||
- 800500 | ||
- 800550 | ||
- 800600 | ||
- 800650 | ||
- 800700 | ||
- 800750 | ||
- 800800 | ||
- 800850 | ||
- 800900 | ||
- 800950 | ||
- 900000 | ||
- 900100 | ||
- 900200 | ||
- 900300 | ||
- 900400 | ||
- 900500 | ||
- 900600 | ||
- 900700 | ||
- 900800 | ||
- 900900 | ||
runner: | ||
- native | ||
- vm | ||
fail-fast: false | ||
defaults: | ||
run: | ||
shell: bash | ||
working-directory: ./starknet-replay | ||
|
||
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 | ||
- 800000 | ||
- 800050 | ||
- 800100 | ||
- 800150 | ||
- 800200 | ||
- 800250 | ||
- 800300 | ||
- 800350 | ||
- 800400 | ||
- 800450 | ||
- 800500 | ||
- 800550 | ||
- 800600 | ||
- 800650 | ||
- 800700 | ||
- 800750 | ||
- 800800 | ||
- 800850 | ||
- 800900 | ||
- 800950 | ||
- 900000 | ||
- 900100 | ||
- 900200 | ||
- 900300 | ||
- 900400 | ||
- 900500 | ||
- 900600 | ||
- 900700 | ||
- 900800 | ||
- 900900 | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.