Skip to content

feat: hourglass (#1543) #36

feat: hourglass (#1543)

feat: hourglass (#1543) #36

name: Foundry Post Merge
on:
workflow_dispatch:
push:
branches:
- main
paths:
- '.github/workflows/foundry-post-merge.yml'
- 'src/**'
- 'lib/**'
- 'foundry.toml'
- '**/*.sol'
permissions:
contents: read
pull-requests: read
env:
FOUNDRY_PROFILE: medium
jobs:
# -----------------------------------------------------------------------
# Forge Test (Intense)
# -----------------------------------------------------------------------
continuous-fuzzing:
name: Test (Intense)
runs-on: protocol-x64-16core
strategy:
fail-fast: true
steps:
- uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911
with:
egress-policy: block
allowed-endpoints: >
binaries.soliditylang.org:443
github.com:443
release-assets.githubusercontent.com:443
eth-mainnet.g.alchemy.com:443
powerful-dimensional-season.ethereum-holesky.quiknode.pro:443
# Check out repository with all submodules for complete codebase access.
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
submodules: recursive
# Restore Forge cache
- name: Cache Forge Build
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684
with:
path: |
cache/
out/
key: ${{ runner.os }}-forge-${{ hashFiles('**/foundry.toml', '**/remappings.txt', 'src/**/*.sol', 'lib/**/*.sol') }}
restore-keys: |
${{ runner.os }}-forge-
# Install the Foundry toolchain.
- name: "Install Foundry"
uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de
with:
version: stable
# Build the project and display contract sizes.
- name: "Forge Build"
run: |
forge --version
forge build --sizes
id: build
# Run Forge Test (Intense)
- name: Forge Test (Intense)
run: |
echo -e "\033[1;33mWarning: This workflow may take several hours to complete.\033[0m"
echo -e "\033[1;33mThis intense fuzzing workflow is optional but helps catch edge cases through extended testing.\033[0m"
FOUNDRY_PROFILE=intense forge test -vvv