Commit da85e698 authored by Michael Amadi's avatar Michael Amadi Committed by GitHub

run forge coverage periodically (#13222)

* run forge coverage periodically

* run forge coverage periodically

* run forge coverage periodically

* fixes

* fixes

* run it every 4 hours

* run it every 4 hours
parent 21827a2f
...@@ -47,6 +47,9 @@ parameters: ...@@ -47,6 +47,9 @@ parameters:
stale_check_dispatch: stale_check_dispatch:
type: boolean type: boolean
default: false default: false
contracts_coverage_dispatch:
type: boolean
default: false
orbs: orbs:
go: circleci/go@1.8.0 go: circleci/go@1.8.0
...@@ -290,10 +293,14 @@ jobs: ...@@ -290,10 +293,14 @@ jobs:
machine: true machine: true
resource_class: ethereum-optimism/latitude-1 resource_class: ethereum-optimism/latitude-1
parameters: parameters:
skip_pattern: build_args:
description: Glob pattern of tests to skip description: Forge build arguments
type: string type: string
default: "" default: ""
profile:
description: Profile to use for building
type: string
default: ci
steps: steps:
- checkout - checkout
- install-contracts-dependencies - install-contracts-dependencies
...@@ -306,9 +313,9 @@ jobs: ...@@ -306,9 +313,9 @@ jobs:
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- run: - run:
name: Build contracts name: Build contracts
command: forge build --deny-warnings --skip <<parameters.skip_pattern>> command: forge build <<parameters.build_args>>
environment: environment:
FOUNDRY_PROFILE: ci FOUNDRY_PROFILE: <<parameters.profile>>
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- run: - run:
name: Generate allocs name: Generate allocs
...@@ -608,11 +615,11 @@ jobs: ...@@ -608,11 +615,11 @@ jobs:
command: just coverage-lcov command: just coverage-lcov
no_output_timeout: 18m no_output_timeout: 18m
environment: environment:
FOUNDRY_PROFILE: ci FOUNDRY_PROFILE: cicoverage
working_directory: packages/contracts-bedrock working_directory: packages/contracts-bedrock
- codecov/upload: - codecov/upload:
disable_search: true disable_search: true
files: ./packages/contracts-bedrock/coverage/lcov.info files: ./packages/contracts-bedrock/lcov.info
flags: contracts-bedrock-tests flags: contracts-bedrock-tests
contracts-bedrock-tests: contracts-bedrock-tests:
...@@ -1301,8 +1308,12 @@ workflows: ...@@ -1301,8 +1308,12 @@ workflows:
jobs: jobs:
- go-mod-download - go-mod-download
- contracts-bedrock-build: - contracts-bedrock-build:
name: contracts-bedrock-build
# Build with just core + script contracts. # Build with just core + script contracts.
skip_pattern: test build_args: --deny-warnings --skip test
- contracts-bedrock-build:
name: contracts-bedrock-build-coverage
profile: cicoverage
- check-kontrol-build: - check-kontrol-build:
requires: requires:
- contracts-bedrock-build - contracts-bedrock-build
...@@ -1323,10 +1334,6 @@ workflows: ...@@ -1323,10 +1334,6 @@ workflows:
test_list: git diff origin/develop...HEAD --name-only --diff-filter=AM -- './test/**/*.t.sol' | sed 's|packages/contracts-bedrock/||' test_list: git diff origin/develop...HEAD --name-only --diff-filter=AM -- './test/**/*.t.sol' | sed 's|packages/contracts-bedrock/||'
test_timeout: 1h test_timeout: 1h
test_profile: ciheavy test_profile: ciheavy
- contracts-bedrock-coverage:
filters:
branches:
ignore: /.*/
- contracts-bedrock-checks: - contracts-bedrock-checks:
requires: requires:
- contracts-bedrock-build - contracts-bedrock-build
...@@ -1599,7 +1606,7 @@ workflows: ...@@ -1599,7 +1606,7 @@ workflows:
context: context:
- slack - slack
- contracts-bedrock-build: - contracts-bedrock-build:
skip_pattern: test build_args: --deny-warnings --skip test
context: context:
- slack - slack
- go-tests: - go-tests:
...@@ -1637,7 +1644,7 @@ workflows: ...@@ -1637,7 +1644,7 @@ workflows:
- equal: [true, << pipeline.parameters.cannon_full_test_dispatch >>] - equal: [true, << pipeline.parameters.cannon_full_test_dispatch >>]
jobs: jobs:
- contracts-bedrock-build: - contracts-bedrock-build:
skip_pattern: test build_args: --deny-warnings --skip test
- cannon-go-lint-and-test: - cannon-go-lint-and-test:
name: cannon-go-lint-and-test-<<matrix.mips_word_size>>-bit name: cannon-go-lint-and-test-<<matrix.mips_word_size>>-bit
requires: requires:
...@@ -1648,6 +1655,17 @@ workflows: ...@@ -1648,6 +1655,17 @@ workflows:
parameters: parameters:
mips_word_size: [32, 64] mips_word_size: [32, 64]
scheduled-forge-coverage:
when:
or:
- equal: [build_four_hours, <<pipeline.schedule.name>>]
- equal: [true, << pipeline.parameters.contracts_coverage_dispatch >>]
jobs:
- contracts-bedrock-build:
name: contracts-bedrock-build-coverage
profile: cicoverage
- contracts-bedrock-coverage
scheduled-docker-publish: scheduled-docker-publish:
when: when:
or: or:
......
...@@ -78,6 +78,20 @@ runs = 512 ...@@ -78,6 +78,20 @@ runs = 512
runs = 256 runs = 256
depth = 32 depth = 32
################################################################
# PROFILE: CICOVERAGE #
################################################################
[profile.cicoverage]
optimizer = false
[profile.cicoverage.fuzz]
runs = 512
[profile.cicoverage.invariant]
runs = 256
depth = 32
################################################################ ################################################################
# PROFILE: CIHEAVY # # PROFILE: CIHEAVY #
################################################################ ################################################################
......
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