Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
3404698
feat: add sender to ERC7802 events (#132) (#13020)
agusduha Nov 21, 2024
ccb544d
feat: add dependency set check to L2ToL2CDM (#134) (#13019)
agusduha Nov 21, 2024
8f5c20e
improve Legacy Contract tests (#13022)
AmadiMichael Nov 21, 2024
e52030d
chore(op-challenger): Update kona native mode flag (#13023)
clabby Nov 22, 2024
5aa14b3
op-batcher: fix a deadlock (#13014)
zhiqiangxu Nov 22, 2024
99810e0
Revert "improve Legacy Contract tests (#13022)" (#13031)
mslipper Nov 22, 2024
1c36df3
op-node: log mgasps across block building/inserting lifecycle (#12907)
bitwiseguy Nov 22, 2024
ae24f01
op-service: Remove txmgr queue timing test (#13032)
mslipper Nov 22, 2024
f9a38de
show more info for ErrInvalidChannelTimeout (#13008)
zhiqiangxu Nov 22, 2024
d139cc9
fix(ci): contracts test names check failures (#13034)
smartcontracts Nov 22, 2024
38db652
fix(ci): lint test names after running tests (#13037)
smartcontracts Nov 22, 2024
43ccf8e
add more tests (#13036)
AmadiMichael Nov 22, 2024
131320e
feat: improve DeployerWhitelist tests (#13035)
smartcontracts Nov 22, 2024
974ee6f
ctb: Fix Holocene upgrade script (#13015)
sebastianst Nov 22, 2024
ec45fa6
improve drippie & faucet tests and coverage (#13040)
AmadiMichael Nov 22, 2024
6a871c5
ci: Lower no output timeout by default (#13039)
mslipper Nov 22, 2024
80465cd
add test for L1ChugSplashProxy (#13045)
AmadiMichael Nov 22, 2024
44367b0
add LegacyMintableERC20 tests (#13049)
AmadiMichael Nov 23, 2024
7719c85
fixes (#13052)
AmadiMichael Nov 24, 2024
418f0cc
ci: Convert all Go tests into a single job (#13046)
mslipper Nov 25, 2024
816b75a
fix: use eth_getBlockReceipts for Infura RPC kind (#12969)
MqllR Nov 25, 2024
c1731a5
cannon: Bump step count for 64-bit map_test (#13065)
Inphi Nov 25, 2024
cff1361
chore: fix some function names in interface comment (#13048)
chuangjinglu Nov 25, 2024
ea7f56c
ci: Increase test timeout (#13067)
mslipper Nov 25, 2024
8f69ac7
op-deployer: Add a proxy to handle RPC failures (#13068)
mslipper Nov 25, 2024
cf83fd9
dependabot(gomod): bump github.com/stretchr/testify from 1.9.0 to 1.1…
dependabot[bot] Nov 25, 2024
ce751a0
feat: delete unused deploy functions (#13083)
maurelian Nov 25, 2024
2b589df
maint: clean src imports (#13056)
smartcontracts Nov 25, 2024
9fb5aa2
upload to codecov using orb (#13062)
geoknee Nov 25, 2024
70d9020
feat: reorder Deploy.s.sol helpers (#13084)
maurelian Nov 25, 2024
efbe102
Use circleci-ip-ranges for fpp-verify (#13093)
zhwrd Nov 26, 2024
d5dfd51
op-dispute-mon: Wrap L1 RPC client with timeouts. (#13059)
ajsutton Nov 26, 2024
915a1a3
op-e2e: Build the op-program client upfront (#13095)
mslipper Nov 26, 2024
f25db96
ci: bump no output timeout (#13096)
mslipper Nov 26, 2024
77d35a5
op-batcher: Don't log DA post failures on context cancel (#13089)
mslipper Nov 26, 2024
75a367f
op-node: Noop RemovePeer when closing (#13091)
mslipper Nov 26, 2024
b707cd8
Update dependency on superchain-registry to bring in Unichain Sepolia…
geoknee Nov 26, 2024
c898ed1
feat: remove _allowUpgrade flag from game impl setters in deploy scri…
maurelian Nov 26, 2024
f633e85
feat: remove unused onlyTestnetOrDevnet modifier (#13086)
maurelian Nov 26, 2024
7726c1a
op-deployer: Simplify and fix bootstrap disputegame (#13094)
ajsutton Nov 26, 2024
4f8e9b5
ci: Tweak test timeouts (#13097)
mslipper Nov 26, 2024
9200bff
fix: restore asterisc bytecode, vendor (#13104)
smartcontracts Nov 26, 2024
51a036d
op-node: Fix panic after closing P2P (#13106)
mslipper Nov 26, 2024
c73f45b
maint: minor cleanup of foundry configuration (#13102)
smartcontracts Nov 26, 2024
e8744d5
dependabot(gomod): bump github.com/minio/minio-go/v7 (#13109)
dependabot[bot] Nov 26, 2024
980b261
dependabot(gomod): bump github.com/multiformats/go-multiaddr-dns (#13…
dependabot[bot] Nov 26, 2024
98a1d92
op-challenger: Allow specifying a chain ID as network. (#13027)
ajsutton Nov 26, 2024
72eb311
feat(protoype): enable superchainWETH native transfers (#12710)
tremarkley Nov 26, 2024
9109958
fix: SuperchainWETH test flake (#13115)
smartcontracts Nov 27, 2024
c8f4b3a
op-deployer: add intent-config-type (#12970)
bitwiseguy Nov 27, 2024
601af96
op-deployer: Bring back error checking in getStandardSuperchainRoles …
mslipper Nov 27, 2024
2bbfd5d
make: Remove unused install-geth target (#13130)
Inphi Nov 27, 2024
cf13a17
build: migrate op-node and op-proposer to just (#13042)
sigma Nov 27, 2024
af169db
feat(op-deployer): `asterisc` bootstrap CLI (#13113)
clabby Nov 27, 2024
451c52b
go.mod: update op-geth to include post-validation hook interop test f…
protolambda Nov 27, 2024
8ee0387
batcher: fix state inconsistency (#12981)
geoknee Nov 27, 2024
8a32cba
improve merkletrie test cov (#13131)
AmadiMichael Nov 27, 2024
16a5d61
maint: clean up primary justfile (#12997)
smartcontracts Nov 27, 2024
e84868c
update lib keccak dependency (#13136)
AmadiMichael Nov 28, 2024
26f7a40
txmgr: `Queue.Send()` uses `q.txMgr.SendAsync` (#13120)
geoknee Nov 28, 2024
7111d13
Merge branch 'develop' into fix/merge-conflict-lockbox
agusduha Nov 28, 2024
4a45ed2
fix: pre pr
agusduha Nov 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
253 changes: 97 additions & 156 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ orbs:
gcp-cli: circleci/gcp-cli@3.0.1
slack: circleci/slack@4.10.1
shellcheck: circleci/shellcheck@3.2.0
codecov: codecov/codecov@5.0.3
commands:
gcp-oidc-authenticate:
description: "Authenticate with GCP using a CircleCI OIDC token."
Expand Down Expand Up @@ -202,10 +203,10 @@ jobs:
gotestsum --format=testname --junitfile=../tmp/test-results/cannon-32.xml --jsonfile=../tmp/testlogs/log-32.json \
-- -parallel=$(nproc) -coverpkg=github.com/ethereum-optimism/optimism/cannon/... -coverprofile=coverage-32.out ./...
working_directory: cannon
- run:
name: Upload Cannon coverage
command: codecov --verbose --clean --flags cannon-go-tests-32 -f ./coverage-32.out
working_directory: cannon
- codecov/upload:
disable_search: true
files: ./cannon/coverage-32.out
flags: cannon-go-tests-32
- when:
condition:
equal: [64, <<parameters.mips_word_size>>]
Expand All @@ -217,10 +218,10 @@ jobs:
gotestsum --format=testname --junitfile=../tmp/test-results/cannon-64.xml --jsonfile=../tmp/testlogs/log-64.json \
-- --tags=cannon64 -parallel=$(nproc) -coverpkg=github.com/ethereum-optimism/optimism/cannon/... -coverprofile=coverage-64.out ./...
working_directory: cannon
- run:
name: Upload Cannon coverage
command: codecov --verbose --clean --flags cannon-go-tests-64 -f ./coverage-64.out
working_directory: cannon
- codecov/upload:
disable_search: true
files: ./cannon/coverage-64.out
flags: cannon-go-tests-64
- store_test_results:
path: ./tmp/test-results
- store_artifacts:
Expand Down Expand Up @@ -257,7 +258,7 @@ jobs:
command: |
# Clone asterisc @ the pinned version to fetch remote `RISCV.sol`
ASTERISC_REV="$(cat ../../versions.json | jq -r .asterisc)"
REMOTE_ASTERISC_PATH="./src/asterisc/RISCV_Remote.sol"
REMOTE_ASTERISC_PATH="./src/vendor/asterisc/RISCV_Remote.sol"
git clone https://github.com/ethereum-optimism/asterisc \
-b $ASTERISC_REV && \
cp ./asterisc/rvsol/src/RISCV.sol $REMOTE_ASTERISC_PATH
Expand Down Expand Up @@ -606,11 +607,10 @@ jobs:
environment:
FOUNDRY_PROFILE: ci
working_directory: packages/contracts-bedrock
- run:
name: upload coverage
command: codecov --verbose --clean --flags contracts-bedrock-tests
environment:
FOUNDRY_PROFILE: ci
- codecov/upload:
disable_search: true
files: ./packages/contracts-bedrock/coverage/lcov.info
flags: contracts-bedrock-tests

contracts-bedrock-tests:
docker:
Expand Down Expand Up @@ -703,6 +703,10 @@ jobs:
FOUNDRY_PROFILE: ci
working_directory: packages/contracts-bedrock
when: on_fail
- run:
name: Lint forge test names
command: just lint-forge-tests-check-no-build
working_directory: packages/contracts-bedrock
- save_cache:
name: Save Go build cache
key: golang-build-cache-contracts-bedrock-tests-{{ checksum "go.sum" }}
Expand Down Expand Up @@ -750,22 +754,7 @@ jobs:
- run-contracts-check:
command: unused-imports-check-no-build
- run-contracts-check:
command: lint-forge-tests-check-no-build

contracts-bedrock-validate-spacers:
docker:
- image: <<pipeline.parameters.ci_builder_image>>
resource_class: medium
steps:
- checkout
- attach_workspace: { at: "." }
- install-contracts-dependencies
- check-changed:
patterns: contracts-bedrock
- run:
name: validate spacers
command: just validate-spacers-no-build
working_directory: packages/contracts-bedrock
command: validate-spacers-no-build

todo-issues:
parameters:
Expand Down Expand Up @@ -878,116 +867,84 @@ jobs:
path: tmp/testlogs
when: always

go-test:
go-tests:
parameters:
notify:
description: Whether to notify on failure
type: boolean
default: false
mentions:
description: Slack user or group to mention when notifying of failures
type: string
default: ""
resource_class:
description: Machine resource class
type: string
default: ethereum-optimism/latitude-1-go-e2e
no_output_timeout:
description: Timeout for when CircleCI kills the job if there's no output
type: string
default: 60m
test_timeout:
description: Timeout for running tests
type: string
default: 10m
environment_overrides:
description: Environment overrides
type: string
default: ""
packages:
description: List of packages to test
type: string
machine: true
resource_class: ethereum-optimism/latitude-1
resource_class: <<parameters.resource_class>>
steps:
- checkout
- attach_workspace:
at: "."
- run:
name: build op-program-client
command: make op-program-client
working_directory: op-program
- run:
name: run tests
no_output_timeout: <<parameters.no_output_timeout>>
command: |
mkdir -p ./tmp/test-results && mkdir -p ./tmp/testlogs

cd op-e2e && make pre-test && cd ..

packages=(
op-batcher
op-chain-ops
op-node
op-proposer
op-challenger
op-dispute-mon
op-conductor
op-program
op-service
op-supervisor
op-deployer
<<parameters.packages>>
)
formatted_packages=""
for package in "${packages[@]}"; do
formatted_packages="$formatted_packages ./$package/..."
done

export OP_E2E_CANNON_ENABLED="false"
export OP_E2E_SKIP_SLOW_TEST=true
export OP_E2E_USE_HTTP=true
export ENABLE_ANVIL=true
export SEPOLIA_RPC_URL="https://ci-sepolia-l1-archive.optimism.io"
export MAINNET_RPC_URL="https://ci-mainnet-l1-archive.optimism.io"

<<parameters.environment_overrides>>

gotestsum --format=testname \
--junitfile=./tmp/test-results/results.xml \
--jsonfile=./tmp/testlogs/log.json \
-- -coverpkg=github.com/ethereum-optimism/optimism/... \
-coverprofile=coverage.out $formatted_packages
--rerun-fails=2 \
--packages="$formatted_packages" \
-- -coverprofile=coverage.out -timeout=<<parameters.test_timeout>>
- codecov/upload:
disable_search: true
files: ./coverage.out
- store_test_results:
path: ./tmp/test-results
- store_artifacts:
path: ./tmp/testlogs
when: always

go-e2e-test:
parameters:
module:
description: Go Module Name
type: string
target:
description: The make target to execute
type: string
notify:
description: Whether to notify on failure
type: boolean
default: false
mentions:
description: Slack user or group to mention when notifying of failures
type: string
default: ""
resource_class:
description: Machine resource class
type: string
default: ethereum-optimism/latitude-1
skip_slow_tests:
description: Indicates that slow tests should be skipped
type: boolean
default: false
machine: true
resource_class: <<parameters.resource_class>>
steps:
- checkout
- attach_workspace:
at: ./tmp/workspace
- run:
name: Load devnet-allocs and artifacts
command: |
mkdir -p .devnet
cp -r ./tmp/workspace/.devnet* .
cp -r ./tmp/workspace/packages/contracts-bedrock/forge-artifacts packages/contracts-bedrock/forge-artifacts
cp ./tmp/workspace/packages/contracts-bedrock/deploy-config/devnetL1.json packages/contracts-bedrock/deploy-config/devnetL1.json
cp -r ./tmp/workspace/packages/contracts-bedrock/deployments/devnetL1 packages/contracts-bedrock/deployments/devnetL1
- run:
name: print go's available MIPS targets
command: go tool dist list | grep mips
- run:
name: run tests
no_output_timeout: 20m
command: |
mkdir -p ./tmp/testlogs
mkdir -p ./tmp/test-results

# The below env var gets overridden when running make test-cannon, but we
# need to explicitly set it here to prevent Cannon from running when we don't
# want it to.
export OP_E2E_CANNON_ENABLED="false"
export OP_E2E_SKIP_SLOW_TEST=<<parameters.skip_slow_tests>>
# Note: We don't use circle CI test splits because we need to split by test name, not by package. There is an additional
# constraint that gotestsum does not currently (nor likely will) accept files from different packages when building.
JUNIT_FILE=../tmp/test-results/<<parameters.module>>_<<parameters.target>>.xml JSON_LOG_FILE=../tmp/testlogs/test.log make <<parameters.target>>
working_directory: <<parameters.module>>
- store_artifacts:
path: ./tmp/testlogs
when: always
- store_artifacts:
path: ./tmp/test-results
when: always
- store_test_results:
path: ./tmp/test-results
- when:
condition: "<<parameters.notify>>"
steps:
Expand Down Expand Up @@ -1163,6 +1120,7 @@ jobs:
- run: echo Done

fpp-verify:
circleci_ip_ranges: true
docker:
- image: cimg/go:1.21
steps:
Expand Down Expand Up @@ -1366,9 +1324,7 @@ workflows:
- contracts-bedrock-checks:
requires:
- contracts-bedrock-build
- contracts-bedrock-validate-spacers:
requires:
- contracts-bedrock-build
- diff-asterisc-bytecode
- semgrep-scan:
name: semgrep-scan-local
scan_command: semgrep scan --timeout=100 --config .semgrep/rules/ --error .
Expand Down Expand Up @@ -1398,33 +1354,31 @@ workflows:
on_changes: op-e2e,packages/contracts-bedrock/src
uses_artifacts: true
requires: ["contracts-bedrock-build"]
- go-test:
name: go-test-all
requires:
- contracts-bedrock-build
- go-test-kurtosis:
name: op-deployer-integration
module: op-deployer
test_directory: ./pkg/deployer/integration_test
uses_artifacts: true
requires: ["contracts-bedrock-build"]
- go-e2e-test:
name: op-e2e-HTTP-tests
module: op-e2e
target: test-http
requires:
- contracts-bedrock-build
- go-e2e-test:
name: op-e2e-action-tests
module: op-e2e
target: test-actions
requires:
- contracts-bedrock-build
- go-e2e-test:
name: op-e2e-fault-proof-tests
module: op-e2e
target: test-fault-proofs
skip_slow_tests: true
- go-tests:
packages: |
op-batcher
op-chain-ops
op-node
op-proposer
op-challenger
op-dispute-mon
op-conductor
op-program
op-service
op-supervisor
op-deployer
op-e2e/system
op-e2e/e2eutils
op-e2e/opgeth
op-e2e/interop
op-e2e/actions
op-e2e/faultproofs
requires:
- contracts-bedrock-build
- cannon-prestate
Expand All @@ -1441,16 +1395,13 @@ workflows:
- go-mod-download
- op-deployer-integration
- op-program-compat
- op-e2e-HTTP-tests
- op-e2e-fault-proof-tests
- op-e2e-action-tests
# Not needed for the devnet but we want to make sure they build successfully
- cannon-docker-build
- op-dispute-mon-docker-build
- op-program-docker-build
- op-supervisor-docker-build
- proofs-tools-docker-build
- go-test-all
- go-tests
- docker-build:
name: <<matrix.docker_name>>-docker-build
docker_tags: <<pipeline.git.revision>>,<<pipeline.git.branch>>
Expand Down Expand Up @@ -1644,16 +1595,17 @@ workflows:
skip_pattern: test
context:
- slack
- go-e2e-test:
- go-tests:
name: op-e2e-cannon-tests
module: op-e2e
target: test-cannon
notify: true
mentions: "@proofs-team"
no_output_timeout: 60m
test_timeout: 59m
resource_class: ethereum-optimism/latitude-fps-1
requires:
- contracts-bedrock-build
- cannon-prestate
environment_overrides: |
export OP_E2E_CANNON_ENABLED="true"
packages: |
op-e2e/faultproofs
context:
- slack

Expand Down Expand Up @@ -1742,17 +1694,6 @@ workflows:
- oplabs-gcr
- slack

scheduled-diff-asterisc-bytecode:
when:
or:
- equal: [build_daily, <<pipeline.schedule.name>>]
# Trigger on manual triggers if explicitly requested
- equal: [true, <<pipeline.parameters.diff_asterisc_bytecode_dispatch>>]
jobs:
- diff-asterisc-bytecode:
context:
- slack

scheduled-preimage-reproducibility:
when:
or:
Expand Down
Loading