@@ -3,7 +3,7 @@ version: 2.1
33parameters :
44 ci_builder_image :
55 type : string
6- default : us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:v0.46.1
6+ default : us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder:v0.48.0
77 ci_builder_rust_image :
88 type : string
99 default : us-docker.pkg.dev/oplabs-tools-artifacts/images/ci-builder-rust:latest
@@ -229,11 +229,17 @@ jobs:
229229 - " packages/contracts-bedrock/tsconfig.tsbuildinfo"
230230 - " packages/contracts-bedrock/tsconfig.build.tsbuildinfo"
231231 - " .devnet/allocs-l1.json"
232+ - " .devnet/allocs-l2.json"
233+ - " .devnet/allocs-l2-delta.json"
232234 - " .devnet/addresses.json"
233235 - " .devnet-fault-proofs/allocs-l1.json"
234236 - " .devnet-fault-proofs/addresses.json"
237+ - " .devnet-fault-proofs/allocs-l2.json"
238+ - " .devnet-fault-proofs/allocs-l2-delta.json"
235239 - " .devnet-plasma/allocs-l1.json"
236240 - " .devnet-plasma/addresses.json"
241+ - " .devnet-plasma/allocs-l2.json"
242+ - " .devnet-plasma/allocs-l2-delta.json"
237243 - " packages/contracts-bedrock/deploy-config/devnetL1.json"
238244 - " packages/contracts-bedrock/deployments/devnetL1"
239245
@@ -506,6 +512,16 @@ jobs:
506512 command : |
507513 pnpm lint:check || echo "export LINT_STATUS=1" >> "$BASH_ENV"
508514 working_directory : packages/contracts-bedrock
515+ - run :
516+ # The solc warnings check must be the first step to build the contracts, that way the
517+ # warnings are output here. On subsequent runs, forge will read artifacts from the cache
518+ # so warnings would not occur.
519+ name : solc warnings check
520+ command : |
521+ forge build --deny-warnings || echo "export SOLC_WARNINGS_CHECK=1" >> "$BASH_ENV"
522+ environment :
523+ FOUNDRY_PROFILE : ci
524+ working_directory : packages/contracts-bedrock
509525 - run :
510526 name : gas snapshot
511527 command : |
@@ -525,13 +541,24 @@ jobs:
525541 command : |
526542 pnpm snapshots:check || echo "export SNAPSHOTS_STATUS=1" >> "$BASH_ENV"
527543 working_directory : packages/contracts-bedrock
544+ - run :
545+ name : size check
546+ command : |
547+ forge build --sizes --skip "/**/test/**" --skip "/**/scripts/**" || echo "export SIZE_CHECK=1" >> "$BASH_ENV"
548+ environment :
549+ FOUNDRY_PROFILE : ci
550+ working_directory : packages/contracts-bedrock
528551 - run :
529552 name : check statuses
530553 command : |
531554 if [[ "$LINT_STATUS" -ne 0 ]]; then
532555 echo "Linting failed, see job output for details."
533556 FAILED=1
534557 fi
558+ if [[ "$SOLC_WARNINGS_CHECK" -ne 0 ]]; then
559+ echo "Solidity emitted warnings, see job output for details."
560+ FAILED=1
561+ fi
535562 if [[ "$GAS_SNAPSHOT_STATUS" -ne 0 ]]; then
536563 echo "Gas snapshot failed, see job output for details."
537564 FAILED=1
@@ -552,6 +579,10 @@ jobs:
552579 echo "Snapshots check failed, see job output for details."
553580 FAILED=1
554581 fi
582+ if [[ "$SIZE_CHECK" -ne 0 ]]; then
583+ echo "Contract(s) exceed size limit, see job output for details."
584+ FAILED=1
585+ fi
555586 if [[ "$FAILED" -ne 0 ]]; then
556587 exit 1
557588 fi
@@ -938,6 +969,8 @@ jobs:
938969 name : Load devnet-allocs
939970 command : |
940971 mkdir -p .devnet
972+ cp /tmp/workspace/.devnet<<parameters.fpac>>/allocs-l2.json .devnet/allocs-l2.json
973+ cp /tmp/workspace/.devnet<<parameters.fpac>>/allocs-l2-delta.json .devnet/allocs-l2-delta.json
941974 cp /tmp/workspace/.devnet<<parameters.fpac>>/allocs-l1.json .devnet/allocs-l1.json
942975 cp /tmp/workspace/.devnet<<parameters.fpac>>/addresses.json .devnet/addresses.json
943976 cp /tmp/workspace/packages/contracts-bedrock/deploy-config/devnetL1.json packages/contracts-bedrock/deploy-config/devnetL1.json
@@ -1130,6 +1163,8 @@ jobs:
11301163 - persist_to_workspace :
11311164 root : .
11321165 paths :
1166+ - " .devnet/allocs-l2.json"
1167+ - " .devnet/allocs-l2-delta.json"
11331168 - " .devnet/allocs-l1.json"
11341169 - " .devnet/addresses.json"
11351170 - " packages/contracts-bedrock/deploy-config/devnetL1.json"
@@ -1146,15 +1181,23 @@ jobs:
11461181 DEVNET_NO_BUILD : ' true'
11471182 # Default value; Can be overridden.
11481183 DEVNET_FPAC : ' false'
1184+ DEVNET_PLASMA : ' false'
11491185 steps :
11501186 - checkout
11511187 - when :
11521188 condition :
1153- equal : ['- fault-proofs', <<parameters.fpac>>]
1189+ equal : ['fault-proofs', <<parameters.fpac>>]
11541190 steps :
11551191 - run :
11561192 name : Set DEVNET_FPAC = true
11571193 command : echo 'export DEVNET_FPAC=true' >> $BASH_ENV
1194+ - when :
1195+ condition :
1196+ equal : ['plasma', <<parameters.fpac>>]
1197+ steps :
1198+ - run :
1199+ name : Set DEVNET_PLASMA = true
1200+ command : echo 'export DEVNET_PLASMA=true' >> $BASH_ENV
11581201 - check-changed :
11591202 patterns : op-(.+),packages,ops-bedrock,bedrock-devnet
11601203 - run :
@@ -1202,6 +1245,14 @@ jobs:
12021245 command : make submodules
12031246 - attach_workspace :
12041247 at : " ."
1248+ - when :
1249+ condition :
1250+ not :
1251+ equal : ['legacy', <<parameters.fpac>>]
1252+ steps :
1253+ - run :
1254+ name : Use non-legacy devnet allocs
1255+ command : rm -r .devnet && mv .devnet-<<parameters.fpac>> .devnet
12051256 - run :
12061257 name : Load and tag docker images
12071258 command : |
@@ -1211,11 +1262,13 @@ jobs:
12111262 docker load < "./op-node.tar"
12121263 docker load < "./op-proposer.tar"
12131264 docker load < "./op-batcher.tar"
1265+ docker load < "./da-server.tar"
12141266 # rename to the tags that the docker-compose of the devnet expects
12151267 docker tag "$IMAGE_BASE_PREFIX/op-stack-go:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/op-stack-go:devnet"
12161268 docker tag "$IMAGE_BASE_PREFIX/op-node:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/op-node:devnet"
12171269 docker tag "$IMAGE_BASE_PREFIX/op-proposer:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/op-proposer:devnet"
12181270 docker tag "$IMAGE_BASE_PREFIX/op-batcher:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/op-batcher:devnet"
1271+ docker tag "$IMAGE_BASE_PREFIX/da-server:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/da-server:devnet"
12191272 - run :
12201273 name : pnpm i
12211274 command : |
@@ -1258,6 +1311,11 @@ jobs:
12581311 command : |
12591312 docker logs ops-bedrock-op-challenger-1 || echo "No logs."
12601313 when : on_fail
1314+ - run :
1315+ name : Dump da-server logs
1316+ command : |
1317+ docker logs ops-bedrock-da-server-1 || echo "No logs."
1318+ when : on_fail
12611319 - run :
12621320 name : Log deployment artifact
12631321 command : |
@@ -1663,7 +1721,7 @@ workflows:
16631721 name : op-e2e-action-tests<< matrix.fpac >>
16641722 matrix :
16651723 parameters :
1666- fpac : ["", "-fault-proofs"]
1724+ fpac : ["", "-fault-proofs", "-plasma" ]
16671725 module : op-e2e
16681726 target : test-actions
16691727 parallelism : 1
@@ -1772,18 +1830,25 @@ workflows:
17721830 docker_tags : <<pipeline.git.revision>>,<<pipeline.git.branch>>
17731831 requires : ['op-stack-go-docker-build']
17741832 save_image_tag : <<pipeline.git.revision>> # for devnet later
1833+ - docker-build :
1834+ name : da-server-docker-build
1835+ docker_name : da-server
1836+ docker_tags : <<pipeline.git.revision>>,<<pipeline.git.branch>>
1837+ requires : ['op-stack-go-docker-build']
1838+ save_image_tag : <<pipeline.git.revision>> # for devnet later
17751839 - cannon-prestate :
17761840 requires :
17771841 - go-mod-download
17781842 - devnet :
17791843 matrix :
17801844 parameters :
1781- fpac : ["legacy", "fault-proofs"]
1845+ fpac : ["legacy", "fault-proofs", "plasma" ]
17821846 requires :
17831847 - pnpm-monorepo
17841848 - op-batcher-docker-build
17851849 - op-proposer-docker-build
17861850 - op-node-docker-build
1851+ - da-server-docker-build
17871852 - cannon-prestate
17881853 - docker-build :
17891854 name : indexer-docker-build
@@ -1813,14 +1878,14 @@ workflows:
18131878 type : approval
18141879 filters :
18151880 tags :
1816- only : /^(proxyd|chain-mon|indexer|ci-builder(-rust)?|ufm-[a-z0-9\-]*|op-[a-z0-9\-]*)\/v.*/
1881+ only : /^(da-server| proxyd|chain-mon|indexer|ci-builder(-rust)?|ufm-[a-z0-9\-]*|op-[a-z0-9\-]*)\/v.*/
18171882 branches :
18181883 ignore : /.*/
18191884 - docker-build : # just to warm up the cache (other jobs run in parallel)
18201885 name : op-stack-go-docker-build-release
18211886 filters :
18221887 tags :
1823- only : /^(proxyd|chain-mon|indexer|ci-builder(-rust)?|ufm-[a-z0-9\-]*|op-[a-z0-9\-]*)\/v.*/
1888+ only : /^(da-server| proxyd|chain-mon|indexer|ci-builder(-rust)?|ufm-[a-z0-9\-]*|op-[a-z0-9\-]*)\/v.*/
18241889 branches :
18251890 ignore : /.*/
18261891 docker_name : op-stack-go
@@ -1933,6 +1998,21 @@ workflows:
19331998 release : true
19341999 context :
19352000 - oplabs-gcr-release
2001+ - docker-build :
2002+ name : da-server-docker-release
2003+ filters :
2004+ tags :
2005+ only : /^da-server\/v.*/
2006+ branches :
2007+ ignore : /.*/
2008+ docker_name : da-server
2009+ docker_tags : <<pipeline.git.revision>>
2010+ requires : ['op-stack-go-docker-build-release']
2011+ platforms : " linux/amd64,linux/arm64"
2012+ publish : true
2013+ release : true
2014+ context :
2015+ - oplabs-gcr-release
19362016 - docker-build :
19372017 name : op-ufm-docker-release
19382018 filters :
0 commit comments