-
Notifications
You must be signed in to change notification settings - Fork 43
162 lines (144 loc) · 4.68 KB
/
daily.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
name: Daily Block Run
on:
schedule:
# At the end of every day
- cron: "0 0 * * *"
pull_request:
env:
RANGE_SIZE: 2
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
continue-on-error: true
- 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
continue-on-error: true
- name: Upload dumps
uses: actions/upload-artifact@v4
with:
name: dump-${{matrix.runner}}-${{matrix.block}}
path: starknet-replay/state_dumps/${{matrix.runner}}
compare:
# needs: [run]
runs-on: ubuntu-latest
strategy:
matrix:
block:
- 740000
- 741000
fail-fast: false
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
# - name: Fetch Native dumps
# uses: actions/download-artifact@v4
# with:
# name: dump-native-${{matrix.block}}
# path: state_dumps/native
# - name: Fetch VM dumps
# uses: actions/download-artifact@v4
# with:
# name: dump-vm-${{matrix.block}}
# path: state_dumps/vm
- name: Compare states
run: |
./scripts/cmp_state_dumps.sh > output
false
- 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" >> $GITHUB_ENV
echo "BLOCK_START=$BLOCK_START" >> $GITHUB_ENV
# Save cmp output to env var
OUTPUT=$(< output)
echo "OUTPUT=\"$OUTPUT\"" >> $GITHUB_ENV
echo "$OUTPUT"
# - name: Create Issue
# if: ${{ failure() }}
# uses: JasonEtco/create-an-issue@v2
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# OS: ${{ matrix.os_name}}
# COMMIT_SHA: ${{ github.sha }}
# with:
# filename: .github/ISSUE_TEMPLATE/daily_failure.md