diff --git a/.circleci/config.yml b/.circleci/config.yml index 9fbed7bde44d..a5e3c2630849 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1284,416 +1284,416 @@ workflows: equal: [ scheduled_pipeline, << pipeline.trigger_source >> ] jobs: - go-mod-download - - contracts-bedrock-build: - # Build with just core + script contracts. - skip_pattern: test - - check-kontrol-build: - requires: - - contracts-bedrock-build - - contracts-bedrock-tests: - # Test everything except PreimageOracle.t.sol since it's slow. - name: contracts-bedrock-tests - test_parallelism: 4 - test_list: find test -name "*.t.sol" -not -name "PreimageOracle.t.sol" - - contracts-bedrock-tests: - # PreimageOracle test is slow, run it separately to unblock CI. - name: contracts-bedrock-tests-preimage-oracle - test_parallelism: 1 - test_list: find test -name "PreimageOracle.t.sol" - - contracts-bedrock-tests: - # Heavily fuzz any fuzz tests within added or modified test files. - name: contracts-bedrock-tests-heavy-fuzz-modified - test_parallelism: 1 - test_list: git diff origin/develop...HEAD --name-only -- './test/**/*.t.sol' | sed 's|packages/contracts-bedrock/||' - test_timeout: 1h - test_profile: ciheavy - - contracts-bedrock-coverage - - contracts-bedrock-checks: - requires: - - contracts-bedrock-build - - contracts-bedrock-validate-spacers: - requires: - - contracts-bedrock-build - - semgrep-scan: - name: semgrep-scan-local - scan_command: semgrep scan --timeout=100 --config .semgrep/rules/ --error . - - semgrep-scan: - name: semgrep-test - scan_command: semgrep scan --test --config .semgrep/rules/ .semgrep/tests/ - - go-lint - - fuzz-golang: - name: fuzz-golang-<> - on_changes: <> - matrix: - parameters: - package_name: - - op-challenger - - op-node - - op-service - - op-chain-ops - - fuzz-golang: - name: cannon-fuzz - package_name: cannon - on_changes: cannon,packages/contracts-bedrock/src/cannon - uses_artifacts: true - requires: ["contracts-bedrock-build"] - - fuzz-golang: - name: op-e2e-fuzz - package_name: op-e2e - 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 - requires: - - contracts-bedrock-build - - cannon-prestate - - op-program-compat - - bedrock-go-tests: - requires: - - go-mod-download - - go-lint - - cannon-build-test-vectors - - cannon-go-lint-and-test-32-bit - - cannon-go-lint-and-test-64-bit - - check-generated-mocks-op-node - - check-generated-mocks-op-service - - 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 - - docker-build: - name: <>-docker-build - docker_tags: <>,<> - save_image_tag: <> - matrix: - parameters: - docker_name: - - op-node - - op-batcher - - op-program - - op-proposer - - op-challenger - - proofs-tools - - op-dispute-mon - - op-conductor - - da-server - - op-supervisor - - cannon - - cannon-prestate - - check-generated-mocks-op-node - - check-generated-mocks-op-service - - cannon-go-lint-and-test: - name: cannon-go-lint-and-test-<>-bit - requires: - - contracts-bedrock-build - skip_slow_tests: true - notify: true - matrix: - parameters: - mips_word_size: [ 32, 64 ] - - cannon-build-test-vectors - - todo-issues: - name: todo-issues-check - check_closed: false - - shellcheck/check: - name: shell-check - # We don't need the `exclude` key as the orb detects the `.shellcheckrc` - dir: . - ignore-dirs: - ./packages/contracts-bedrock/lib + # - contracts-bedrock-build: + # # Build with just core + script contracts. + # skip_pattern: test + # - check-kontrol-build: + # requires: + # - contracts-bedrock-build + # - contracts-bedrock-tests: + # # Test everything except PreimageOracle.t.sol since it's slow. + # name: contracts-bedrock-tests + # test_parallelism: 4 + # test_list: find test -name "*.t.sol" -not -name "PreimageOracle.t.sol" + # - contracts-bedrock-tests: + # # PreimageOracle test is slow, run it separately to unblock CI. + # name: contracts-bedrock-tests-preimage-oracle + # test_parallelism: 1 + # test_list: find test -name "PreimageOracle.t.sol" + # - contracts-bedrock-tests: + # # Heavily fuzz any fuzz tests within added or modified test files. + # name: contracts-bedrock-tests-heavy-fuzz-modified + # test_parallelism: 1 + # test_list: git diff origin/develop...HEAD --name-only -- './test/**/*.t.sol' | sed 's|packages/contracts-bedrock/||' + # test_timeout: 1h + # test_profile: ciheavy + # - contracts-bedrock-coverage + # - contracts-bedrock-checks: + # requires: + # - contracts-bedrock-build + # - contracts-bedrock-validate-spacers: + # requires: + # - contracts-bedrock-build + # - semgrep-scan: + # name: semgrep-scan-local + # scan_command: semgrep scan --timeout=100 --config .semgrep/rules/ --error . + # - semgrep-scan: + # name: semgrep-test + # scan_command: semgrep scan --test --config .semgrep/rules/ .semgrep/tests/ + # - go-lint + # - fuzz-golang: + # name: fuzz-golang-<> + # on_changes: <> + # matrix: + # parameters: + # package_name: + # - op-challenger + # - op-node + # - op-service + # - op-chain-ops + # - fuzz-golang: + # name: cannon-fuzz + # package_name: cannon + # on_changes: cannon,packages/contracts-bedrock/src/cannon + # uses_artifacts: true + # requires: ["contracts-bedrock-build"] + # - fuzz-golang: + # name: op-e2e-fuzz + # package_name: op-e2e + # 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 + # requires: + # - contracts-bedrock-build + # - cannon-prestate + # - op-program-compat + # - bedrock-go-tests: + # requires: + # - go-mod-download + # - go-lint + # - cannon-build-test-vectors + # - cannon-go-lint-and-test-32-bit + # - cannon-go-lint-and-test-64-bit + # - check-generated-mocks-op-node + # - check-generated-mocks-op-service + # - 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 + # - docker-build: + # name: <>-docker-build + # docker_tags: <>,<> + # save_image_tag: <> + # matrix: + # parameters: + # docker_name: + # - op-node + # - op-batcher + # - op-program + # - op-proposer + # - op-challenger + # - proofs-tools + # - op-dispute-mon + # - op-conductor + # - da-server + # - op-supervisor + # - cannon + # - cannon-prestate + # - check-generated-mocks-op-node + # - check-generated-mocks-op-service + # - cannon-go-lint-and-test: + # name: cannon-go-lint-and-test-<>-bit + # requires: + # - contracts-bedrock-build + # skip_slow_tests: true + # notify: true + # matrix: + # parameters: + # mips_word_size: [ 32, 64 ] + # - cannon-build-test-vectors + # - todo-issues: + # name: todo-issues-check + # check_closed: false + # - shellcheck/check: + # name: shell-check + # # We don't need the `exclude` key as the orb detects the `.shellcheckrc` + # dir: . + # ignore-dirs: + # ./packages/contracts-bedrock/lib - go-release-deployer: - jobs: - - go-release: - filters: - tags: - only: /^op-deployer.*/ - branches: - ignore: /.*/ - module: op-deployer - context: - - oplabs-gcr-release + # go-release-deployer: + # jobs: + # - go-release: + # filters: + # tags: + # only: /^op-deployer.*/ + # branches: + # ignore: /.*/ + # module: op-deployer + # context: + # - oplabs-gcr-release - release: - when: - not: - equal: [ scheduled_pipeline, << pipeline.trigger_source >> ] - jobs: - # Wait for approval on the release - - hold: - type: approval - filters: - tags: - only: /^(da-server|ci-builder(-rust)?|proofs-tools|cannon|ufm-[a-z0-9\-]*|op-[a-z0-9\-]*)\/v.*/ - branches: - ignore: /.*/ - # Standard (medium) cross-platform docker images go here - - docker-build: - matrix: - parameters: - docker_name: - - op-node - - op-batcher - - op-proposer - - op-challenger - - op-dispute-mon - - op-conductor - - da-server - - op-ufm - - op-supervisor - - op-deployer - - cannon - name: <>-docker-release - docker_tags: <> - platforms: "linux/amd64,linux/arm64" - publish: true - release: true - filters: - tags: - only: /^<>\/v.*/ - branches: - ignore: /.*/ - context: - - oplabs-gcr-release - requires: - - hold - # Checks for cross-platform images go here - - check-cross-platform: - matrix: - parameters: - op_component: - - op-node - - op-batcher - - op-proposer - - op-challenger - - op-dispute-mon - - op-conductor - - da-server - - op-ufm - - op-supervisor - - op-deployer - - cannon - name: <>-cross-platform - requires: - - op-node-docker-release - - op-batcher-docker-release - - op-proposer-docker-release - - op-challenger-docker-release - - op-dispute-mon-docker-release - - op-conductor-docker-release - - da-server-docker-release - - op-ufm-docker-release - - op-supervisor-docker-release - - cannon-docker-release - # Standard (xlarge) AMD-only docker images go here - - docker-build: - matrix: - parameters: - docker_name: - - ci-builder - - ci-builder-rust - - proofs-tools - name: <>-docker-release - resource_class: xlarge - docker_tags: <> - publish: true - release: true - filters: - tags: - only: /^<>\/v.*/ - branches: - ignore: /.*/ - context: - - oplabs-gcr-release - requires: - - hold + # release: + # when: + # not: + # equal: [ scheduled_pipeline, << pipeline.trigger_source >> ] + # jobs: + # # Wait for approval on the release + # - hold: + # type: approval + # filters: + # tags: + # only: /^(da-server|ci-builder(-rust)?|proofs-tools|cannon|ufm-[a-z0-9\-]*|op-[a-z0-9\-]*)\/v.*/ + # branches: + # ignore: /.*/ + # # Standard (medium) cross-platform docker images go here + # - docker-build: + # matrix: + # parameters: + # docker_name: + # - op-node + # - op-batcher + # - op-proposer + # - op-challenger + # - op-dispute-mon + # - op-conductor + # - da-server + # - op-ufm + # - op-supervisor + # - op-deployer + # - cannon + # name: <>-docker-release + # docker_tags: <> + # platforms: "linux/amd64,linux/arm64" + # publish: true + # release: true + # filters: + # tags: + # only: /^<>\/v.*/ + # branches: + # ignore: /.*/ + # context: + # - oplabs-gcr-release + # requires: + # - hold + # # Checks for cross-platform images go here + # - check-cross-platform: + # matrix: + # parameters: + # op_component: + # - op-node + # - op-batcher + # - op-proposer + # - op-challenger + # - op-dispute-mon + # - op-conductor + # - da-server + # - op-ufm + # - op-supervisor + # - op-deployer + # - cannon + # name: <>-cross-platform + # requires: + # - op-node-docker-release + # - op-batcher-docker-release + # - op-proposer-docker-release + # - op-challenger-docker-release + # - op-dispute-mon-docker-release + # - op-conductor-docker-release + # - da-server-docker-release + # - op-ufm-docker-release + # - op-supervisor-docker-release + # - cannon-docker-release + # # Standard (xlarge) AMD-only docker images go here + # - docker-build: + # matrix: + # parameters: + # docker_name: + # - ci-builder + # - ci-builder-rust + # - proofs-tools + # name: <>-docker-release + # resource_class: xlarge + # docker_tags: <> + # publish: true + # release: true + # filters: + # tags: + # only: /^<>\/v.*/ + # branches: + # ignore: /.*/ + # context: + # - oplabs-gcr-release + # requires: + # - hold - scheduled-todo-issues: - when: - equal: [ build_four_hours, <> ] - jobs: - - todo-issues: - name: todo-issue-checks - context: - - slack + # scheduled-todo-issues: + # when: + # equal: [ build_four_hours, <> ] + # jobs: + # - todo-issues: + # name: todo-issue-checks + # context: + # - slack - scheduled-fpp: - when: - equal: [ build_hourly, <> ] - jobs: - - fpp-verify: - context: - - slack - - oplabs-fpp-nodes + # scheduled-fpp: + # when: + # equal: [ build_hourly, <> ] + # jobs: + # - fpp-verify: + # context: + # - slack + # - oplabs-fpp-nodes - develop-publish-contract-artifacts: - when: - or: - - equal: [ "develop", <> ] - - equal: [ true, <> ] - jobs: - - publish-contract-artifacts + # develop-publish-contract-artifacts: + # when: + # or: + # - equal: [ "develop", <> ] + # - equal: [ true, <> ] + # jobs: + # - publish-contract-artifacts - develop-fault-proofs: - when: - and: - - or: - - equal: [ "develop", <> ] - - equal: [ true, <> ] - - not: - equal: [ scheduled_pipeline, << pipeline.trigger_source >> ] - jobs: - - go-mod-download - - cannon-prestate - - cannon-stf-verify: - requires: - - go-mod-download - context: - - slack - - contracts-bedrock-build: - skip_pattern: test - context: - - slack - - go-e2e-test: - name: op-e2e-cannon-tests - module: op-e2e - target: test-cannon - notify: true - mentions: "@proofs-team" - resource_class: ethereum-optimism/latitude-fps-1 - requires: - - contracts-bedrock-build - - cannon-prestate - context: - - slack + # develop-fault-proofs: + # when: + # and: + # - or: + # - equal: [ "develop", <> ] + # - equal: [ true, <> ] + # - not: + # equal: [ scheduled_pipeline, << pipeline.trigger_source >> ] + # jobs: + # - go-mod-download + # - cannon-prestate + # - cannon-stf-verify: + # requires: + # - go-mod-download + # context: + # - slack + # - contracts-bedrock-build: + # skip_pattern: test + # context: + # - slack + # - go-e2e-test: + # name: op-e2e-cannon-tests + # module: op-e2e + # target: test-cannon + # notify: true + # mentions: "@proofs-team" + # resource_class: ethereum-optimism/latitude-fps-1 + # requires: + # - contracts-bedrock-build + # - cannon-prestate + # context: + # - slack - develop-kontrol-tests: - when: - and: - - or: - - equal: [ "develop", <> ] - - equal: [ true, <> ] - - not: - equal: [ scheduled_pipeline, << pipeline.trigger_source >> ] - jobs: - - kontrol-tests: - context: - - slack - - runtimeverification + # develop-kontrol-tests: + # when: + # and: + # - or: + # - equal: [ "develop", <> ] + # - equal: [ true, <> ] + # - not: + # equal: [ scheduled_pipeline, << pipeline.trigger_source >> ] + # jobs: + # - kontrol-tests: + # context: + # - slack + # - runtimeverification - scheduled-cannon-full-tests: - when: - or: - - equal: [ build_four_hours, <> ] - - equal: [ true, << pipeline.parameters.cannon_full_test_dispatch >> ] - jobs: - - contracts-bedrock-build: - skip_pattern: test - - cannon-go-lint-and-test: - name: cannon-go-lint-and-test-<>-bit - requires: - - contracts-bedrock-build - context: - - slack - matrix: - parameters: - mips_word_size: [ 32, 64 ] + # scheduled-cannon-full-tests: + # when: + # or: + # - equal: [ build_four_hours, <> ] + # - equal: [ true, << pipeline.parameters.cannon_full_test_dispatch >> ] + # jobs: + # - contracts-bedrock-build: + # skip_pattern: test + # - cannon-go-lint-and-test: + # name: cannon-go-lint-and-test-<>-bit + # requires: + # - contracts-bedrock-build + # context: + # - slack + # matrix: + # parameters: + # mips_word_size: [ 32, 64 ] - scheduled-docker-publish: - when: - or: - - equal: [ build_hourly, <> ] - # Trigger on manual triggers if explicitly requested - - equal: [ true, << pipeline.parameters.docker_publish_dispatch >> ] - jobs: - - docker-build: - matrix: - parameters: - docker_name: - - op-node - - op-batcher - - op-program - - op-proposer - - op-challenger - - op-dispute-mon - - op-conductor - - op-supervisor - - cannon - name: <>-docker-publish - docker_tags: <>,<> - platforms: "linux/amd64,linux/arm64" - publish: true - context: - - oplabs-gcr - - slack - - check-cross-platform: - matrix: - parameters: - op_component: - - op-node - - op-batcher - - op-program - - op-proposer - - op-challenger - - op-dispute-mon - - op-conductor - - op-supervisor - - cannon - name: <>-cross-platform - requires: - - <>-docker-publish - - docker-build: - name: contracts-bedrock-docker-publish - docker_name: contracts-bedrock - docker_tags: <>,<> - resource_class: xlarge - publish: true - context: - - oplabs-gcr - - slack + # scheduled-docker-publish: + # when: + # or: + # - equal: [ build_hourly, <> ] + # # Trigger on manual triggers if explicitly requested + # - equal: [ true, << pipeline.parameters.docker_publish_dispatch >> ] + # jobs: + # - docker-build: + # matrix: + # parameters: + # docker_name: + # - op-node + # - op-batcher + # - op-program + # - op-proposer + # - op-challenger + # - op-dispute-mon + # - op-conductor + # - op-supervisor + # - cannon + # name: <>-docker-publish + # docker_tags: <>,<> + # platforms: "linux/amd64,linux/arm64" + # publish: true + # context: + # - oplabs-gcr + # - slack + # - check-cross-platform: + # matrix: + # parameters: + # op_component: + # - op-node + # - op-batcher + # - op-program + # - op-proposer + # - op-challenger + # - op-dispute-mon + # - op-conductor + # - op-supervisor + # - cannon + # name: <>-cross-platform + # requires: + # - <>-docker-publish + # - docker-build: + # name: contracts-bedrock-docker-publish + # docker_name: contracts-bedrock + # docker_tags: <>,<> + # resource_class: xlarge + # publish: true + # context: + # - oplabs-gcr + # - slack - scheduled-preimage-reproducibility: - when: - or: - - equal: [build_daily, <> ] - # Trigger on manual triggers if explicitly requested - - equal: [ true, << pipeline.parameters.reproducibility_dispatch >> ] - jobs: - - preimage-reproducibility: - context: - slack + # scheduled-preimage-reproducibility: + # when: + # or: + # - equal: [build_daily, <> ] + # # Trigger on manual triggers if explicitly requested + # - equal: [ true, << pipeline.parameters.reproducibility_dispatch >> ] + # jobs: + # - preimage-reproducibility: + # context: + # slack