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:
stale_check_dispatch:
type: boolean
default: false
contracts_coverage_dispatch:
type: boolean
default: false
orbs:
go: circleci/go@1.8.0
......@@ -290,10 +293,14 @@ jobs:
machine: true
resource_class: ethereum-optimism/latitude-1
parameters:
skip_pattern:
description: Glob pattern of tests to skip
build_args:
description: Forge build arguments
type: string
default: ""
profile:
description: Profile to use for building
type: string
default: ci
steps:
- checkout
- install-contracts-dependencies
......@@ -306,9 +313,9 @@ jobs:
working_directory: packages/contracts-bedrock
- run:
name: Build contracts
command: forge build --deny-warnings --skip <<parameters.skip_pattern>>
command: forge build <<parameters.build_args>>
environment:
FOUNDRY_PROFILE: ci
FOUNDRY_PROFILE: <<parameters.profile>>
working_directory: packages/contracts-bedrock
- run:
name: Generate allocs
......@@ -608,11 +615,11 @@ jobs:
command: just coverage-lcov
no_output_timeout: 18m
environment:
FOUNDRY_PROFILE: ci
FOUNDRY_PROFILE: cicoverage
working_directory: packages/contracts-bedrock
- codecov/upload:
disable_search: true
files: ./packages/contracts-bedrock/coverage/lcov.info
files: ./packages/contracts-bedrock/lcov.info
flags: contracts-bedrock-tests
contracts-bedrock-tests:
......@@ -1301,8 +1308,12 @@ workflows:
jobs:
- go-mod-download
- contracts-bedrock-build:
name: contracts-bedrock-build
# 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:
requires:
- contracts-bedrock-build
......@@ -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_timeout: 1h
test_profile: ciheavy
- contracts-bedrock-coverage:
filters:
branches:
ignore: /.*/
- contracts-bedrock-checks:
requires:
- contracts-bedrock-build
......@@ -1599,7 +1606,7 @@ workflows:
context:
- slack
- contracts-bedrock-build:
skip_pattern: test
build_args: --deny-warnings --skip test
context:
- slack
- go-tests:
......@@ -1637,7 +1644,7 @@ workflows:
- equal: [true, << pipeline.parameters.cannon_full_test_dispatch >>]
jobs:
- contracts-bedrock-build:
skip_pattern: test
build_args: --deny-warnings --skip test
- cannon-go-lint-and-test:
name: cannon-go-lint-and-test-<<matrix.mips_word_size>>-bit
requires:
......@@ -1648,6 +1655,17 @@ workflows:
parameters:
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:
when:
or:
......
......@@ -78,6 +78,20 @@ runs = 512
runs = 256
depth = 32
################################################################
# PROFILE: CICOVERAGE #
################################################################
[profile.cicoverage]
optimizer = false
[profile.cicoverage.fuzz]
runs = 512
[profile.cicoverage.invariant]
runs = 256
depth = 32
################################################################
# 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