Skip to content

Commit ebe13a5

Browse files
committed
ci: Add scheduled job to check reproducibility of op-program preimages.
1 parent 48771c8 commit ebe13a5

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

.circleci/config.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ parameters:
2323
fault_proofs_dispatch:
2424
type: boolean
2525
default: false
26+
reproducibility_dispatch:
27+
type: boolean
28+
default: false
2629
kontrol_dispatch:
2730
type: boolean
2831
default: false
@@ -1110,6 +1113,48 @@ jobs:
11101113
- "op-program/bin/meta.json"
11111114
- "op-program/bin/prestate-proof.json"
11121115

1116+
preimage-reproducibility:
1117+
docker:
1118+
- image: <<pipeline.parameters.ci_builder_image>>
1119+
parameters:
1120+
version:
1121+
type: string
1122+
steps:
1123+
- checkout
1124+
- setup_remote_docker
1125+
- run:
1126+
name: Switch to tag
1127+
command: |
1128+
git fetch
1129+
git checkout "op-program/v<<parameters.version>>"
1130+
git submodule update --init --recursive
1131+
- run:
1132+
name: Set expected prestate hashes
1133+
command: |
1134+
if [[ "<<parameters.version>>" == "0.1.0" ]]; then
1135+
echo 'export EXPECTED_PRESTATE_HASH="0x038942ec840131a63c49fa514a3f0577ae401fd5584d56ad50cdf5a8b41d4538"' >> $BASH_ENV
1136+
elif [[ "<<parameters.version>>" == "0.2.0" ]]; then
1137+
echo 'export EXPECTED_PRESTATE_HASH="0x031e3b504740d0b1264e8cf72b6dde0d497184cfb3f98e451c6be8b33bd3f808"' >> $BASH_ENV
1138+
else
1139+
echo "Unknown prestate version <<parameters.version>>"
1140+
exit 1
1141+
fi
1142+
- run:
1143+
name: Build prestate
1144+
command: make reproducible-prestate
1145+
- run:
1146+
name: Verify prestate
1147+
command: |
1148+
ACTUAL=$(jq -r .pre ./op-program/bin/prestate-proof.json)
1149+
echo "Expected: ${EXPECTED_PRESTATE_HASH}"
1150+
echo "Actual: ${ACTUAL}"
1151+
if [[ "${EXPECTED_PRESTATE_HASH}" != "${ACTUAL}" ]]
1152+
then
1153+
echo "Prestate has did not match expected"
1154+
exit 1
1155+
fi
1156+
1157+
11131158
devnet-allocs:
11141159
docker:
11151160
- image: <<pipeline.parameters.ci_builder_image>>
@@ -2274,3 +2319,15 @@ workflows:
22742319
context:
22752320
- slack
22762321
- oplabs-etherscan
2322+
2323+
scheduled-preimage-reproducibility:
2324+
when:
2325+
or:
2326+
- equal: [build_daily, <<pipeline.schedule.name>> ]
2327+
# Trigger on manual triggers if explicitly requested
2328+
- equal: [ true, << pipeline.parameters.reproducibility_dispatch >> ]
2329+
jobs:
2330+
- preimage-reproducibility:
2331+
matrix:
2332+
parameters:
2333+
version: ["0.1.0", "0.2.0"]

0 commit comments

Comments
 (0)