Commit f954cbb8 authored by smartcontracts's avatar smartcontracts Committed by GitHub

ci: speed up CI by up to 50% (#11794)

Introduces a number of improvements to CI that significantly
reduce overal CI time by up to 50% of the previous time.
parent 75c73266
...@@ -134,7 +134,7 @@ jobs: ...@@ -134,7 +134,7 @@ jobs:
cannon-go-lint-and-test: cannon-go-lint-and-test:
docker: docker:
- image: <<pipeline.parameters.ci_builder_image>> - image: <<pipeline.parameters.ci_builder_image>>
resource_class: medium resource_class: xlarge
steps: steps:
- checkout - checkout
- check-changed: - check-changed:
...@@ -158,7 +158,7 @@ jobs: ...@@ -158,7 +158,7 @@ jobs:
command: | command: |
mkdir -p /testlogs mkdir -p /testlogs
gotestsum --format=testname --junitfile=/tmp/test-results/cannon.xml --jsonfile=/testlogs/log.json \ gotestsum --format=testname --junitfile=/tmp/test-results/cannon.xml --jsonfile=/testlogs/log.json \
-- -parallel=2 -coverpkg=github.com/ethereum-optimism/optimism/cannon/... -coverprofile=coverage.out ./... -- -parallel=8 -coverpkg=github.com/ethereum-optimism/optimism/cannon/... -coverprofile=coverage.out ./...
working_directory: cannon working_directory: cannon
- run: - run:
name: upload Cannon coverage name: upload Cannon coverage
...@@ -168,6 +168,7 @@ jobs: ...@@ -168,6 +168,7 @@ jobs:
- store_artifacts: - store_artifacts:
path: /testlogs path: /testlogs
when: always when: always
cannon-build-test-vectors: cannon-build-test-vectors:
docker: docker:
- image: <<pipeline.parameters.ci_builder_image>> - image: <<pipeline.parameters.ci_builder_image>>
...@@ -181,21 +182,19 @@ jobs: ...@@ -181,21 +182,19 @@ jobs:
command: python3 maketests.py && git diff --exit-code command: python3 maketests.py && git diff --exit-code
working_directory: cannon/mipsevm/tests/open_mips_tests working_directory: cannon/mipsevm/tests/open_mips_tests
pnpm-monorepo: contracts-bedrock-build:
docker: docker:
- image: <<pipeline.parameters.ci_builder_image>> - image: <<pipeline.parameters.ci_builder_image>>
resource_class: xlarge resource_class: xlarge
parameters:
build_command:
type: string
default: just prebuild && forge build --deny-warnings
steps: steps:
- checkout - checkout
# - run: # temporarily disabled, to update ci-builder.
# name: "Check L1 geth version"
# command: ./ops/scripts/geth-version-checker.sh || (echo "geth version is wrong, update ci-builder"; false)
- install-contracts-dependencies - install-contracts-dependencies
- restore_cache:
name: Restore Go modules cache
key: gomod-{{ checksum "go.sum" }}
- run: - run:
name: print forge version name: Print forge version
command: forge --version command: forge --version
- run: - run:
name: Pull artifacts name: Pull artifacts
...@@ -203,10 +202,39 @@ jobs: ...@@ -203,10 +202,39 @@ jobs:
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- run: - run:
name: Build contracts name: Build contracts
command: << parameters.build_command >>
environment: environment:
FOUNDRY_PROFILE: ci FOUNDRY_PROFILE: ci
command: just build
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- persist_to_workspace:
root: "."
paths:
- ".git"
- "packages/contracts-bedrock/lib"
- "packages/contracts-bedrock/cache"
- "packages/contracts-bedrock/artifacts"
- "packages/contracts-bedrock/forge-artifacts"
- notify-failures-on-develop
build-devnet-allocs:
docker:
- image: <<pipeline.parameters.ci_builder_image>>
resource_class: xlarge
steps:
- checkout
- attach_workspace: { at: "." }
- install-contracts-dependencies
# - run: # temporarily disabled, to update ci-builder.
# name: "Check L1 geth version"
# command: ./ops/scripts/geth-version-checker.sh || (echo "geth version is wrong, update ci-builder"; false)
- restore_cache:
name: Restore Go modules cache
key: gomod-allocs-{{ checksum "go.sum" }}
- restore_cache:
name: Restore Go build cache
keys:
- golang-build-cache-allocs-{{ checksum "go.sum" }}
- golang-build-cache-allocs-
- run: - run:
name: Generate L2OO allocs name: Generate L2OO allocs
command: DEVNET_L2OO="true" make devnet-allocs command: DEVNET_L2OO="true" make devnet-allocs
...@@ -228,12 +256,19 @@ jobs: ...@@ -228,12 +256,19 @@ jobs:
- run: - run:
name: Generate default allocs name: Generate default allocs
command: make devnet-allocs command: make devnet-allocs
- save_cache:
name: Save Go modules cache
key: gomod-allocs-{{ checksum "go.sum" }}
paths:
- "/go/pkg/mod"
- save_cache:
name: Save Go build cache
key: golang-build-cache-allocs-{{ checksum "go.sum" }}
paths:
- "/root/.cache/go-build"
- persist_to_workspace: - persist_to_workspace:
root: "." root: "."
paths: paths:
- "packages/contracts-bedrock/cache"
- "packages/contracts-bedrock/artifacts"
- "packages/contracts-bedrock/forge-artifacts"
- ".devnet/allocs-l1.json" - ".devnet/allocs-l1.json"
- ".devnet/allocs-l2-delta.json" - ".devnet/allocs-l2-delta.json"
- ".devnet/allocs-l2-ecotone.json" - ".devnet/allocs-l2-ecotone.json"
...@@ -530,11 +565,21 @@ jobs: ...@@ -530,11 +565,21 @@ jobs:
docker: docker:
- image: <<pipeline.parameters.ci_builder_image>> - image: <<pipeline.parameters.ci_builder_image>>
resource_class: xlarge resource_class: xlarge
parallelism: 4
steps: steps:
- checkout - checkout
- attach_workspace: { at: "." }
- install-contracts-dependencies
- check-changed: - check-changed:
patterns: contracts-bedrock,op-node patterns: contracts-bedrock,op-node
- install-contracts-dependencies - restore_cache:
name: Restore Go modules cache
key: gomod-{{ checksum "go.sum" }}
- restore_cache:
name: Restore Go build cache
keys:
- golang-build-cache-contracts-bedrock-tests-{{ checksum "go.sum" }}
- golang-build-cache-contracts-bedrock-tests-
- run: - run:
name: print dependencies name: print dependencies
command: just dep-status command: just dep-status
...@@ -544,12 +589,14 @@ jobs: ...@@ -544,12 +589,14 @@ jobs:
command: forge --version command: forge --version
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- run: - run:
name: pull cached artifacts name: build go-ffi
command: bash scripts/ops/pull-artifacts.sh command: just build-go-ffi
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- run: - run:
name: run tests name: run tests
command: just test command: |
TESTS=$(forge test --list | grep -E '^\s{4}' | awk '{print $1}' | circleci tests split --split-by=timings | paste -sd "|" -)
forge test --match-test "$TESTS"
environment: environment:
FOUNDRY_PROFILE: ci FOUNDRY_PROFILE: ci
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
...@@ -561,6 +608,11 @@ jobs: ...@@ -561,6 +608,11 @@ jobs:
FOUNDRY_PROFILE: ci FOUNDRY_PROFILE: ci
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
when: on_fail when: on_fail
- save_cache:
name: Save Go build cache
key: golang-build-cache-contracts-bedrock-tests-{{ checksum "go.sum" }}
paths:
- "/root/.cache/go-build"
contracts-bedrock-checks: contracts-bedrock-checks:
docker: docker:
...@@ -577,13 +629,6 @@ jobs: ...@@ -577,13 +629,6 @@ jobs:
- run: - run:
name: forge version name: forge version
command: forge --version command: forge --version
- run:
name: solc warnings check
command: |
forge build --force --deny-warnings || echo "export SOLC_WARNINGS_CHECK=1" >> "$BASH_ENV"
environment:
FOUNDRY_PROFILE: ci
working_directory: packages/contracts-bedrock
- run: - run:
# Semver lock must come second because one of the later steps may modify the cache & force a contracts rebuild. # Semver lock must come second because one of the later steps may modify the cache & force a contracts rebuild.
name: semver lock name: semver lock
...@@ -617,7 +662,7 @@ jobs: ...@@ -617,7 +662,7 @@ jobs:
- run: - run:
name: snapshots name: snapshots
command: | command: |
just snapshots-check || echo "export SNAPSHOTS_STATUS=1" >> "$BASH_ENV" just snapshots-check-no-build || echo "export SNAPSHOTS_STATUS=1" >> "$BASH_ENV"
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- run: - run:
name: kontrol deployment name: kontrol deployment
...@@ -643,10 +688,6 @@ jobs: ...@@ -643,10 +688,6 @@ jobs:
echo "Linting failed, see job output for details." echo "Linting failed, see job output for details."
FAILED=1 FAILED=1
fi fi
if [[ "$SOLC_WARNINGS_CHECK" -ne 0 ]]; then
echo "Solidity emitted warnings, see job output for details."
FAILED=1
fi
if [[ "$GAS_SNAPSHOT_STATUS" -ne 0 ]]; then if [[ "$GAS_SNAPSHOT_STATUS" -ne 0 ]]; then
echo "Gas snapshot failed, see job output for details." echo "Gas snapshot failed, see job output for details."
FAILED=1 FAILED=1
...@@ -683,18 +724,19 @@ jobs: ...@@ -683,18 +724,19 @@ jobs:
exit 1 exit 1
fi fi
contracts-bedrock-validate-spaces: contracts-bedrock-validate-spacers:
docker: docker:
- image: <<pipeline.parameters.ci_builder_image>> - image: <<pipeline.parameters.ci_builder_image>>
resource_class: medium resource_class: medium
steps: steps:
- checkout - checkout
- attach_workspace: { at: "." } - attach_workspace: { at: "." }
- install-contracts-dependencies
- check-changed: - check-changed:
patterns: contracts-bedrock patterns: contracts-bedrock
- run: - run:
name: validate spacers name: validate spacers
command: just validate-spacers command: just validate-spacers-no-build
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
todo-issues: todo-issues:
...@@ -736,13 +778,16 @@ jobs: ...@@ -736,13 +778,16 @@ jobs:
key: gomod-{{ checksum "go.sum" }} key: gomod-{{ checksum "go.sum" }}
- restore_cache: - restore_cache:
name: Restore Go build cache name: Restore Go build cache
key: golang-build-cache keys:
- golang-build-cache-fuzz-golang-{{ checksum "go.sum" }}
- golang-build-cache-fuzz-golang-
- run: - run:
name: Fuzz name: Fuzz
command: make fuzz command: make fuzz
working_directory: "<<parameters.package_name>>" working_directory: "<<parameters.package_name>>"
- save_cache: - save_cache:
key: golang-build-cache name: Save Go build cache
key: golang-build-cache-fuzz-golang-{{ checksum "go.sum" }}
paths: paths:
- "/root/.cache/go-build" - "/root/.cache/go-build"
...@@ -764,9 +809,15 @@ jobs: ...@@ -764,9 +809,15 @@ jobs:
name: Restore Go modules cache name: Restore Go modules cache
key: gomod-{{ checksum "go.sum" }} key: gomod-{{ checksum "go.sum" }}
- restore_cache: - restore_cache:
key: golang-build-cache name: Restore Go build cache
keys:
- golang-build-cache-lint-{{ checksum "go.sum" }}
- golang-build-cache-lint-
- restore_cache: - restore_cache:
key: golang-lint-cache name: Restore Go lint cache
keys:
- golang-lint-cache-{{ checksum "go.sum" }}
- golang-lint-cache-
- run: - run:
name: run Go linter name: run Go linter
command: | command: |
...@@ -775,11 +826,13 @@ jobs: ...@@ -775,11 +826,13 @@ jobs:
make lint-go make lint-go
working_directory: . working_directory: .
- save_cache: - save_cache:
key: golang-build-cache name: Save Go build cache
key: golang-build-cache-lint-{{ checksum "go.sum" }}
paths: paths:
- "/root/.cache/go-build" - "/root/.cache/go-build"
- save_cache: - save_cache:
key: golang-lint-cache name: Save Go lint cache
key: golang-lint-cache-{{ checksum "go.sum" }}
paths: paths:
- "/root/.cache/golangci-lint" - "/root/.cache/golangci-lint"
...@@ -797,9 +850,10 @@ jobs: ...@@ -797,9 +850,10 @@ jobs:
name: Restore Go modules cache name: Restore Go modules cache
key: gomod-{{ checksum "go.sum" }} key: gomod-{{ checksum "go.sum" }}
- restore_cache: - restore_cache:
name: Restore Go build cache
keys: keys:
- golang-build-cache-<<parameters.module>> - golang-build-cache-test-<<parameters.module>>-{{ checksum "go.sum" }}
- golang-build-cache- - golang-build-cache-test-
- run: - run:
name: prep results dir name: prep results dir
command: mkdir -p /tmp/test-results && mkdir -p /testlogs command: mkdir -p /tmp/test-results && mkdir -p /testlogs
...@@ -810,7 +864,8 @@ jobs: ...@@ -810,7 +864,8 @@ jobs:
-- -parallel=8 -coverpkg=github.com/ethereum-optimism/optimism/... -coverprofile=coverage.out ./... -- -parallel=8 -coverpkg=github.com/ethereum-optimism/optimism/... -coverprofile=coverage.out ./...
working_directory: <<parameters.module>> working_directory: <<parameters.module>>
- save_cache: - save_cache:
key: golang-build-cache-<<parameters.module>> name: Save Go build cache
key: golang-build-cache-test-<<parameters.module>>-{{ checksum "go.sum" }}
paths: paths:
- "/root/.cache/go-build" - "/root/.cache/go-build"
# TODO(CLI-148): Fix codecov # TODO(CLI-148): Fix codecov
...@@ -882,7 +937,9 @@ jobs: ...@@ -882,7 +937,9 @@ jobs:
key: gomod-{{ checksum "go.sum" }} key: gomod-{{ checksum "go.sum" }}
- restore_cache: - restore_cache:
name: Restore Go build cache name: Restore Go build cache
key: golang-build-cache keys:
- golang-build-cache-e2e-{{ checksum "go.sum" }}
- golang-build-cache-e2e-
- attach_workspace: - attach_workspace:
at: /tmp/workspace at: /tmp/workspace
- run: - run:
...@@ -923,6 +980,11 @@ jobs: ...@@ -923,6 +980,11 @@ jobs:
when: always when: always
- store_test_results: - store_test_results:
path: /tmp/test-results path: /tmp/test-results
- save_cache:
name: Save Go build cache
key: golang-build-cache-e2e-{{ checksum "go.sum" }}
paths:
- "/root/.cache/go-build"
- when: - when:
condition: "<<parameters.notify>>" condition: "<<parameters.notify>>"
steps: steps:
...@@ -985,10 +1047,19 @@ jobs: ...@@ -985,10 +1047,19 @@ jobs:
name: Restore Go modules cache name: Restore Go modules cache
key: gomod-{{ checksum "go.sum" }} key: gomod-{{ checksum "go.sum" }}
- restore_cache: - restore_cache:
key: golang-build-cache name: Restore Go build cache
keys:
- golang-build-cache-cannon-prestate-{{ checksum "go.sum" }}
- golang-build-cache-cannon-prestate-
- run:
name: Build cannon
command: make cannon
- run:
name: Build op-program
command: make op-program
- restore_cache: - restore_cache:
name: Restore cannon prestate cache
key: cannon-prestate-{{ checksum "./cannon/bin/cannon" }}-{{ checksum "op-program/bin/op-program-client.elf" }} key: cannon-prestate-{{ checksum "./cannon/bin/cannon" }}-{{ checksum "op-program/bin/op-program-client.elf" }}
name: Load cannon prestate cache
- run: - run:
name: generate cannon prestate name: generate cannon prestate
command: make cannon-prestate command: make cannon-prestate
...@@ -999,6 +1070,11 @@ jobs: ...@@ -999,6 +1070,11 @@ jobs:
- "op-program/bin/prestate.json" - "op-program/bin/prestate.json"
- "op-program/bin/meta.json" - "op-program/bin/meta.json"
- "op-program/bin/prestate-proof.json" - "op-program/bin/prestate-proof.json"
- save_cache:
name: Save Go build cache
key: golang-build-cache-cannon-prestate-{{ checksum "go.sum" }}
paths:
- "/root/.cache/go-build"
- persist_to_workspace: - persist_to_workspace:
root: . root: .
paths: paths:
...@@ -1057,34 +1133,6 @@ jobs: ...@@ -1057,34 +1133,6 @@ jobs:
- notify-failures-on-develop: - notify-failures-on-develop:
mentions: "@proofs-squad" mentions: "@proofs-squad"
devnet-allocs:
docker:
- image: <<pipeline.parameters.ci_builder_image>>
resource_class: xlarge
steps:
- checkout
- restore_cache:
name: Restore Go modules cache
key: gomod-{{ checksum "go.sum" }}
- restore_cache:
key: golang-build-cache
- install-contracts-dependencies
- run:
name: generate devnet allocs
command: make devnet-allocs
- persist_to_workspace:
root: .
paths:
- ".devnet/allocs-l2-delta.json"
- ".devnet/allocs-l2-ecotone.json"
- ".devnet/allocs-l2-fjord.json"
- ".devnet/allocs-l2-granite.json"
- ".devnet/allocs-l1.json"
- ".devnet/addresses.json"
- "packages/contracts-bedrock/deploy-config/devnetL1.json"
- "packages/contracts-bedrock/deployments/devnetL1"
devnet: devnet:
machine: machine:
image: <<pipeline.parameters.base_image>> image: <<pipeline.parameters.base_image>>
...@@ -1099,6 +1147,9 @@ jobs: ...@@ -1099,6 +1147,9 @@ jobs:
DEVNET_ALTDA: 'false' DEVNET_ALTDA: 'false'
steps: steps:
- checkout - checkout
- attach_workspace: { at: "." }
- check-changed:
patterns: op-(.+),packages,ops-bedrock,bedrock-devnet
- when: - when:
condition: condition:
equal: ['altda', <<parameters.variant>>] equal: ['altda', <<parameters.variant>>]
...@@ -1116,8 +1167,14 @@ jobs: ...@@ -1116,8 +1167,14 @@ jobs:
- run: - run:
name: Set GENERIC_ALTDA = true name: Set GENERIC_ALTDA = true
command: echo 'export GENERIC_ALTDA=true' >> $BASH_ENV command: echo 'export GENERIC_ALTDA=true' >> $BASH_ENV
- check-changed: - restore_cache:
patterns: op-(.+),packages,ops-bedrock,bedrock-devnet name: Restore Go modules cache
key: gomod-{{ checksum "go.sum" }}
- restore_cache:
name: Restore Go build cache
keys:
- golang-build-cache-devnet-{{ checksum "go.sum" }}
- golang-build-cache-devnet-
- run: - run:
name: Install latest golang name: Install latest golang
command: | command: |
...@@ -1152,8 +1209,6 @@ jobs: ...@@ -1152,8 +1209,6 @@ jobs:
curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to $HOME/bin --tag "${VER}" curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to $HOME/bin --tag "${VER}"
echo 'export PATH="${PATH}:$HOME/bin"' >> $BASH_ENV echo 'export PATH="${PATH}:$HOME/bin"' >> $BASH_ENV
- install-contracts-dependencies - install-contracts-dependencies
- attach_workspace:
at: "."
- when: - when:
condition: condition:
not: not:
...@@ -1178,10 +1233,6 @@ jobs: ...@@ -1178,10 +1233,6 @@ jobs:
docker tag "$IMAGE_BASE_PREFIX/op-batcher:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/op-batcher:devnet" docker tag "$IMAGE_BASE_PREFIX/op-batcher:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/op-batcher:devnet"
docker tag "$IMAGE_BASE_PREFIX/op-challenger:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/op-challenger:devnet" docker tag "$IMAGE_BASE_PREFIX/op-challenger:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/op-challenger:devnet"
docker tag "$IMAGE_BASE_PREFIX/da-server:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/da-server:devnet" docker tag "$IMAGE_BASE_PREFIX/da-server:<<pipeline.git.revision>>" "$IMAGE_BASE_PREFIX/da-server:devnet"
- run:
name: Build contracts
working_directory: packages/contracts-bedrock
command: just build
- run: - run:
name: Bring up the stack name: Bring up the stack
command: | command: |
...@@ -1255,6 +1306,11 @@ jobs: ...@@ -1255,6 +1306,11 @@ jobs:
ls -R forge-artifacts || echo "No forge artifacts found" ls -R forge-artifacts || echo "No forge artifacts found"
when: on_fail when: on_fail
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- save_cache:
name: Save Go build cache
key: golang-build-cache-devnet-{{ checksum "go.sum" }}
paths:
- /home/circleci/.cache/go-build
semgrep-scan: semgrep-scan:
parameters: parameters:
...@@ -1322,13 +1378,6 @@ jobs: ...@@ -1322,13 +1378,6 @@ jobs:
- run: - run:
name: "Go mod tidy" name: "Go mod tidy"
command: make mod-tidy && git diff --exit-code command: make mod-tidy && git diff --exit-code
- run:
name: run Go linter
command: |
# Identify how many cores it defaults to
golangci-lint --help | grep concurrency
make lint-go
working_directory: .
- save_cache: - save_cache:
key: << parameters.key >>-{{ checksum "<< parameters.file >>" }} key: << parameters.key >>-{{ checksum "<< parameters.file >>" }}
name: Save Go modules cache name: Save Go modules cache
...@@ -1367,12 +1416,17 @@ jobs: ...@@ -1367,12 +1416,17 @@ jobs:
name: Restore Go modules cache name: Restore Go modules cache
key: gomod-{{ checksum "go.sum" }} key: gomod-{{ checksum "go.sum" }}
- restore_cache: - restore_cache:
key: golang-build-cache key: golang-build-cache-op-program-compat-{{ checksum "go.sum" }}
- run: - run:
name: compat-sepolia name: compat-sepolia
command: | command: |
make verify-compat make verify-compat
working_directory: op-program working_directory: op-program
- save_cache:
name: Save Go build cache
key: golang-build-cache-op-program-compat-{{ checksum "go.sum" }}
paths:
- "/root/.cache/go-build"
check-generated-mocks-op-node: check-generated-mocks-op-node:
docker: docker:
...@@ -1491,18 +1545,30 @@ workflows: ...@@ -1491,18 +1545,30 @@ workflows:
- not: - not:
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ] equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
jobs: jobs:
- pnpm-monorepo: - go-mod-download
name: pnpm-monorepo - contracts-bedrock-build
- contracts-bedrock-tests - contracts-bedrock-build:
name: contracts-bedrock-build-skip-tests
build_command: forge build --skip test
- contracts-bedrock-tests:
requires:
- contracts-bedrock-build
- go-mod-download
- contracts-bedrock-coverage - contracts-bedrock-coverage
- contracts-bedrock-checks: - contracts-bedrock-checks:
requires: requires:
- pnpm-monorepo - contracts-bedrock-build-skip-tests
- contracts-bedrock-validate-spaces: - contracts-bedrock-validate-spacers:
requires: requires:
- pnpm-monorepo - contracts-bedrock-build-skip-tests
- build-devnet-allocs:
requires:
- contracts-bedrock-build-skip-tests
- go-mod-download
- semgrep-scan - semgrep-scan
- go-mod-download - go-lint:
requires:
- go-mod-download
- fuzz-golang: - fuzz-golang:
name: op-challenger-fuzz name: op-challenger-fuzz
package_name: op-challenger package_name: op-challenger
...@@ -1528,13 +1594,13 @@ workflows: ...@@ -1528,13 +1594,13 @@ workflows:
package_name: cannon package_name: cannon
on_changes: cannon,packages/contracts-bedrock/src/cannon on_changes: cannon,packages/contracts-bedrock/src/cannon
uses_artifacts: true uses_artifacts: true
requires: ["go-mod-download", "pnpm-monorepo"] requires: ["go-mod-download", "build-devnet-allocs"]
- fuzz-golang: - fuzz-golang:
name: op-e2e-fuzz name: op-e2e-fuzz
package_name: op-e2e package_name: op-e2e
on_changes: op-e2e,packages/contracts-bedrock/src on_changes: op-e2e,packages/contracts-bedrock/src
uses_artifacts: true uses_artifacts: true
requires: ["go-mod-download", "pnpm-monorepo"] requires: ["go-mod-download", "build-devnet-allocs"]
- go-test: - go-test:
name: op-batcher-tests name: op-batcher-tests
module: op-batcher module: op-batcher
...@@ -1585,7 +1651,7 @@ workflows: ...@@ -1585,7 +1651,7 @@ workflows:
parallelism: 4 parallelism: 4
requires: requires:
- go-mod-download - go-mod-download
- pnpm-monorepo - build-devnet-allocs
- go-e2e-test: - go-e2e-test:
name: op-e2e-action-tests<< matrix.variant >> name: op-e2e-action-tests<< matrix.variant >>
matrix: matrix:
...@@ -1596,14 +1662,14 @@ workflows: ...@@ -1596,14 +1662,14 @@ workflows:
parallelism: 1 parallelism: 1
requires: requires:
- go-mod-download - go-mod-download
- pnpm-monorepo - build-devnet-allocs
- go-e2e-test: - go-e2e-test:
name: op-e2e-fault-proof-tests name: op-e2e-fault-proof-tests
module: op-e2e module: op-e2e
target: test-fault-proofs target: test-fault-proofs
parallelism: 4 parallelism: 4
requires: requires:
- pnpm-monorepo - build-devnet-allocs
- cannon-prestate - cannon-prestate
- op-program-compat: - op-program-compat:
requires: requires:
...@@ -1684,7 +1750,7 @@ workflows: ...@@ -1684,7 +1750,7 @@ workflows:
parameters: parameters:
variant: ["default", "altda", "altda-generic"] variant: ["default", "altda", "altda-generic"]
requires: requires:
- pnpm-monorepo - build-devnet-allocs
- op-batcher-docker-build - op-batcher-docker-build
- op-proposer-docker-build - op-proposer-docker-build
- op-node-docker-build - op-node-docker-build
...@@ -1695,7 +1761,7 @@ workflows: ...@@ -1695,7 +1761,7 @@ workflows:
- check-generated-mocks-op-service - check-generated-mocks-op-service
- cannon-go-lint-and-test: - cannon-go-lint-and-test:
requires: requires:
- pnpm-monorepo - build-devnet-allocs
- cannon-build-test-vectors - cannon-build-test-vectors
- shellcheck/check: - shellcheck/check:
name: shell-check name: shell-check
...@@ -1963,10 +2029,13 @@ workflows: ...@@ -1963,10 +2029,13 @@ workflows:
- cannon-prestate: - cannon-prestate:
requires: requires:
- go-mod-download - go-mod-download
- pnpm-monorepo: - contracts-bedrock-build:
name: pnpm-monorepo
requires: requires:
- go-mod-download - go-mod-download
- build-devnet-allocs:
name: build-devnet-allocs
requires:
- contracts-bedrock-build
- go-e2e-test: - go-e2e-test:
name: op-e2e-cannon-tests name: op-e2e-cannon-tests
module: op-e2e module: op-e2e
...@@ -1975,7 +2044,7 @@ workflows: ...@@ -1975,7 +2044,7 @@ workflows:
notify: true notify: true
mentions: "@proofs-squad" mentions: "@proofs-squad"
requires: requires:
- pnpm-monorepo - build-devnet-allocs
- cannon-prestate - cannon-prestate
context: context:
- slack - slack
......
...@@ -79,6 +79,11 @@ snapshots-no-build: snapshots-abi-storage ...@@ -79,6 +79,11 @@ snapshots-no-build: snapshots-abi-storage
# Builds contracts and then generates core snapshots. # Builds contracts and then generates core snapshots.
snapshots: build snapshots-no-build snapshots: build snapshots-no-build
# Checks if the snapshots are up to date without building.
snapshots-check-no-build:
./scripts/checks/check-snapshots.sh --no-build
# Checks if the snapshots are up to date.
snapshots-check: snapshots-check:
./scripts/checks/check-snapshots.sh ./scripts/checks/check-snapshots.sh
......
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
# Generate the snapshots # Check for the --no-build flag
just snapshots # Generate snapshots
if [ "$1" == "--no-build" ]; then
just snapshots-no-build
else
just snapshots
fi
# Check if the generated `snapshots` files are different from the committed versions # Check if the generated `snapshots` files are different from the committed versions
if git diff --exit-code snapshots > /dev/null; then if git diff --exit-code snapshots > /dev/null; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment