Skip to content

Commit

Permalink
Merge pull request #61 from zkemail/update-dependencies
Browse files Browse the repository at this point in the history
Update dependencies
  • Loading branch information
JohnGuilding authored Nov 8, 2024
2 parents b2beee8 + 671b32d commit f30bf21
Show file tree
Hide file tree
Showing 10 changed files with 469 additions and 104 deletions.
67 changes: 67 additions & 0 deletions .github/workflows/forge-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: "Build a Forge project"

on:
workflow_call:
inputs:
cache-path:
default: |
cache
node_modules
out
out-optimized
required: false
type: "string"

save-cache:
default: true
required: false
type: boolean

jobs:
forge-build:
runs-on: "ubuntu-latest"
steps:
- name: "Check out the repo"
uses: "actions/checkout@v4"

- name: "Install Foundry"
uses: "foundry-rs/[email protected]"

- name: "Install NodeJS"
uses: actions/setup-node@v4
with:
node-version: 18

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.0.6
run_install: false

- name: "Install the Node.js dependencies"
run: "pnpm install"

- name: "Show the Forge config"
run: "forge config"

- name: "Build the production contracts"
run: "forge build"

- name: "Cache node__odules"
if: ${{ inputs.save-cache }}
uses: "actions/cache/save@v4"
with:
key: "build-and-modules-${{ github.sha }}"
path: node_modules

- name: "Cache the contracts and the node modules so that they can be re-used by the other jobs"
if: ${{ inputs.save-cache }}
uses: "actions/cache/save@v4"
with:
key: "build-and-modules-${{ github.sha }}"
path: out

- name: "Add summary"
run: |
echo "## Build result" >> $GITHUB_STEP_SUMMARY
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY
145 changes: 145 additions & 0 deletions .github/workflows/forge-test-multi-account.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
name: "Simulate modules using the modulekit"

on:
workflow_call:
inputs:
cache-path:
default: |
cache
node_modules
out
out-optimized
required: false
type: "string"

foundry-fuzz-runs:
default: 1000
required: false
type: "number"

foundry-invariant-depth:
default: 20
required: false
type: "number"

foundry-invariant-runs:
default: 20
required: false
type: "number"

foundry-profile:
default: "default"
required: false
type: "string"

fuzz-seed:
default: false
required: false
type: boolean

match-path:
required: true
type: "string"

name:
default: "Forge"
required: false
type: "string"

restore-cache:
default: true
required: false
type: boolean

foundry-gas-limit:
default: "18446744073709551615"
required: false
type: "string"

foundry-memory-limit:
default: 4294967295
required: false
type: "number"

foundry-verbosity:
default: 3
required: false
type: "number"

secrets:
MAINNET_RPC_URL:
required: false
TESTNET_RPC_URL:
required: false

jobs:
forge-test:
runs-on: "ubuntu-latest"
steps:
- name: "Check out the repo"
uses: "actions/checkout@v4"

- name: "Install Foundry"
uses: "foundry-rs/[email protected]"

- name: "Install NodeJS"
uses: actions/setup-node@v4
with:
node-version: 18

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.0.6
run_install: false

- name: "Restore the cached build and the node modules"
if: ${{ inputs.restore-cache }}
uses: "actions/cache/restore@v4"
with:
key: "build-and-modules-${{ github.sha }}"
path: ${{ inputs.cache-path }}

- name: "Install the Node.js dependencies"
run: "pnpm install"

- name: "Test account: default"
run: 'ACCOUNT_TYPE=DEFAULT forge test --threads 1 --match-path "${{ inputs.match-path }}"'
env:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
TESTNET_RPC_URL: ${{ secrets.TESTNET_RPC_URL }}
FOUNDRY_VERBOSITY: ${{ inputs.foundry-verbosity }}
FOUNDRY_GAS_LIMIT: ${{ inputs.foundry-gas-limit }}
FOUNDRY_MEMORY_LIMIT: ${{ inputs.foundry-memory-limit }}

- name: "Test account: Safe"
run: 'ACCOUNT_TYPE=SAFE forge test --threads 1 --match-path "${{ inputs.match-path }}"'
env:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
TESTNET_RPC_URL: ${{ secrets.TESTNET_RPC_URL }}
FOUNDRY_VERBOSITY: ${{ inputs.foundry-verbosity }}
FOUNDRY_GAS_LIMIT: ${{ inputs.foundry-gas-limit }}
FOUNDRY_MEMORY_LIMIT: ${{ inputs.foundry-memory-limit }}

- name: "Test account: Kernel"
run: 'ACCOUNT_TYPE=KERNEL forge test --threads 1 --match-path "${{ inputs.match-path }}"'
env:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
TESTNET_RPC_URL: ${{ secrets.TESTNET_RPC_URL }}
FOUNDRY_VERBOSITY: ${{ inputs.foundry-verbosity }}
FOUNDRY_GAS_LIMIT: ${{ inputs.foundry-gas-limit }}
FOUNDRY_MEMORY_LIMIT: ${{ inputs.foundry-memory-limit }}

- name: "Test account: NEXUS"
run: 'ACCOUNT_TYPE=NEXUS forge test --threads 1 --match-path "${{ inputs.match-path }}"'
env:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
TESTNET_RPC_URL: ${{ secrets.TESTNET_RPC_URL }}
FOUNDRY_VERBOSITY: ${{ inputs.foundry-verbosity }}
FOUNDRY_GAS_LIMIT: ${{ inputs.foundry-gas-limit }}
FOUNDRY_MEMORY_LIMIT: ${{ inputs.foundry-memory-limit }}

- name: "Add summary"
run: |
echo "## Coverage result" >> $GITHUB_STEP_SUMMARY
echo "✅ Uploaded to Codecov" >> $GITHUB_STEP_SUMMARY
119 changes: 119 additions & 0 deletions .github/workflows/forge-test-simulate.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: "Simulate modules using the modulekit"

on:
workflow_call:
inputs:
cache-path:
default: |
cache
node_modules
out
out-optimized
required: false
type: "string"

foundry-fuzz-runs:
default: 1000
required: false
type: "number"

foundry-invariant-depth:
default: 20
required: false
type: "number"

foundry-invariant-runs:
default: 20
required: false
type: "number"

foundry-profile:
default: "default"
required: false
type: "string"

fuzz-seed:
default: false
required: false
type: boolean

match-path:
required: true
type: "string"

name:
default: "Forge"
required: false
type: "string"

restore-cache:
default: true
required: false
type: boolean

foundry-gas-limit:
default: "18446744073709551615"
required: false
type: "string"

foundry-memory-limit:
default: 4294967295
required: false
type: "number"

foundry-verbosity:
default: 3
required: false
type: "number"

secrets:
MAINNET_RPC_URL:
required: false
TESTNET_RPC_URL:
required: false

jobs:
forge-test:
runs-on: "ubuntu-latest"
timeout-minutes: 20
steps:
- name: "Check out the repo"
uses: "actions/checkout@v4"

- name: "Install Foundry"
uses: "foundry-rs/[email protected]"

- name: "Install NodeJS"
uses: actions/setup-node@v4
with:
node-version: 18

- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.0.6
run_install: false

- name: "Restore the cached build and the node modules"
if: ${{ inputs.restore-cache }}
uses: "actions/cache/restore@v4"
with:
key: "build-and-modules-${{ github.sha }}"
path: ${{ inputs.cache-path }}

- name: "Install the Node.js dependencies"
run: "pnpm install"

- name: "Run Foundry Tests on supplied files"
run: 'SIMULATE=true forge test --threads 1 --match-path "${{ inputs.match-path }}"'
env:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
TESTNET_RPC_URL: ${{ secrets.TESTNET_RPC_URL }}
FOUNDRY_VERBOSITY: ${{ inputs.foundry-verbosity }}
FOUNDRY_GAS_LIMIT: ${{ inputs.foundry-gas-limit }}
FOUNDRY_MEMORY_LIMIT: ${{ inputs.foundry-memory-limit }}

- name: "Add summary"
run: |
echo "## Coverage result" >> $GITHUB_STEP_SUMMARY
echo "✅ Uploaded to Codecov" >> $GITHUB_STEP_SUMMARY
20 changes: 20 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: test

on:
push:
pull_request:

env:
FOUNDRY_PROFILE: ci

jobs:
build:
uses: "./.github/workflows/forge-build.yaml"

test-multi-account:
needs: ["build"]
uses: "./.github/workflows/forge-test-multi-account.yaml"
with:
foundry-fuzz-runs: 5000
foundry-profile: "test"
match-path: "test/**/*.sol"
29 changes: 0 additions & 29 deletions .github/workflows/test.yml

This file was deleted.

Loading

0 comments on commit f30bf21

Please sign in to comment.