Initial medusa support for the CI #21
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test examples using Medusa | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- "*" | |
env: | |
FOUNDRY_PROFILE: ci | |
jobs: | |
foundry: | |
name: Test Foundry examples | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
with: | |
version: nightly | |
- name: Go setup | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "^1.18.1" | |
- name: Install medusa | |
run: | | |
git clone https://github.com/crytic/medusa.git | |
cd medusa | |
go build -o medusa -v . | |
go install -v . | |
sudo cp medusa /usr/bin | |
pip install crytic-compile | |
- name: Compile ERC20 Foundry example | |
working-directory: tests/ERC20/foundry | |
run: forge build --build-info | |
# - name: Run Medusa for Internal ERC20 tests | |
# working-directory: tests/ERC20/foundry | |
# run: | | |
# ls | |
# medusa fuzz --target-contracts CryticERC20InternalHarness --config medusa-config.json | |
- name: Run Medusa for External ERC20 tests | |
working-directory: tests/ERC20/foundry | |
run: | | |
crytic-compile . | |
ls out -R | |
medusa fuzz --target-contracts CryticERC20ExternalHarness --config medusa-config-ext.json | |
- name: Compile ERC4646 Foundry example | |
working-directory: tests/ERC4626/foundry | |
run: forge build --build-info | |
- name: Run Medusa for External ERC4626 tests | |
working-directory: tests/ERC4626/foundry | |
run: | | |
medusa fuzz --target-contracts CryticERC4626InternalHarness --config medusa-config.json | |
hardhat: | |
name: Test Hardhat examples | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up Nodejs | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
- name: Install dependencies and compile ERC20 example | |
working-directory: tests/ERC20/hardhat | |
run: | | |
npm ci | |
npx hardhat compile --force | |
- name: Install dependencies and compile ERC4626 example | |
working-directory: tests/ERC4626/hardhat | |
run: | | |
npm ci | |
npx hardhat compile --force | |
- name: Go setup | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "^1.18.1" | |
- name: Install medusa | |
run: | | |
git clone https://github.com/crytic/medusa.git | |
cd medusa | |
go build -o medusa -v . | |
go install -v . | |
sudo cp medusa /usr/bin | |
pip install crytic-compile | |
- name: Run Medusa for Internal ERC20 tests | |
working-directory: tests/ERC20/hardhat | |
run: | | |
medusa fuzz --target-contracts CryticERC20InternalHarness --config medusa-config.json | |
- name: Run Medusa for External ERC20 tests | |
working-directory: tests/ERC20/hardhat | |
run: | | |
medusa fuzz --target-contracts CryticERC20ExternalHarness --config medusa-config-ext.json | |
- name: Run Medusa for External ERC4626 tests | |
working-directory: tests/ERC4626/hardhat | |
run: | | |
medusa fuzz --target-contracts CryticERC4626Harness --config medusa-config.json |