script: create new scripts to deploy market making engine #737 (#738) #674
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: "CI" | |
env: | |
API_KEY_ALCHEMY: ${{ secrets.API_KEY_ALCHEMY }} | |
API_KEY_ETHERSCAN: ${{ secrets.API_KEY_ETHERSCAN }} | |
API_KEY_INFURA: ${{ secrets.API_KEY_INFURA }} | |
FOUNDRY_PROFILE: "ci" | |
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }} | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- "develop" | |
jobs: | |
fmt: | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "Check out the repo" | |
uses: "actions/checkout@v3" | |
with: | |
submodules: "recursive" | |
- name: "Install Foundry" | |
uses: "foundry-rs/foundry-toolchain@v1" | |
- name: "Install Pnpm" | |
uses: "pnpm/action-setup@v2" | |
with: | |
version: "8" | |
- name: "Install Node.js" | |
uses: "actions/setup-node@v3" | |
with: | |
cache: "pnpm" | |
node-version: "lts/*" | |
- name: "Install the Node.js dependencies" | |
run: "pnpm install" | |
- name: "Format the contracts" | |
run: "forge fmt --check" | |
- name: "Add format summary" | |
run: | | |
echo "## Format result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY | |
# lint: | |
# runs-on: "ubuntu-latest" | |
# steps: | |
# - name: "Check out the repo" | |
# uses: "actions/checkout@v3" | |
# with: | |
# submodules: "recursive" | |
# - name: "Install Foundry" | |
# uses: "foundry-rs/foundry-toolchain@v1" | |
# - name: "Install Pnpm" | |
# uses: "pnpm/action-setup@v2" | |
# with: | |
# version: "8" | |
# - name: "Install Node.js" | |
# uses: "actions/setup-node@v3" | |
# with: | |
# cache: "pnpm" | |
# node-version: "lts/*" | |
# - name: "Install the Node.js dependencies" | |
# run: "pnpm install" | |
# - name: "Lint the contracts" | |
# run: "pnpm lint" | |
# - name: "Add lint summary" | |
# run: | | |
# echo "## Lint result" >> $GITHUB_STEP_SUMMARY | |
# echo "✅ Passed" >> $GITHUB_STEP_SUMMARY | |
build: | |
needs: ["fmt"] | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "Check out the repo" | |
uses: "actions/checkout@v3" | |
with: | |
submodules: "recursive" | |
- name: "Install Foundry" | |
uses: "foundry-rs/foundry-toolchain@v1" | |
- name: "Install Pnpm" | |
uses: "pnpm/action-setup@v2" | |
with: | |
version: "8" | |
- name: "Install Node.js" | |
uses: "actions/setup-node@v3" | |
with: | |
cache: "pnpm" | |
node-version: "lts/*" | |
- name: "Install the Node.js dependencies" | |
run: "pnpm install" | |
- name: "Build the contracts" | |
run: "forge build" | |
- name: "Add build summary" | |
run: | | |
echo "## Build result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY | |
# slither: | |
# needs: ["lint", "build"] | |
# runs-on: "ubuntu-latest" | |
# steps: | |
# - name: "Check out the repo" | |
# uses: "actions/checkout@v3" | |
# with: | |
# submodules: "recursive" | |
# - name: "Install Foundry" | |
# uses: "foundry-rs/foundry-toolchain@v1" | |
# - name: "Install Pnpm" | |
# uses: "pnpm/action-setup@v2" | |
# with: | |
# version: "8" | |
# - name: "Install Node.js" | |
# uses: "actions/setup-node@v3" | |
# with: | |
# cache: "pnpm" | |
# node-version: "lts/*" | |
# - name: "Install the Node.js dependencies" | |
# run: "pnpm install" | |
# - name: "Install slither" | |
# run: "pip install slither-analyzer" | |
# - name: "Run the slither analyzer" | |
# continue-on-error: true | |
# run: "make slither" | |
# aderyn: | |
# needs: ["lint", "build"] | |
# runs-on: "ubuntu-latest" | |
# steps: | |
# - name: "Check out the repo" | |
# uses: "actions/checkout@v2" | |
# with: | |
# submodules: "recursive" | |
# - name: "Install Foundry" | |
# uses: "foundry-rs/foundry-toolchain@v1" | |
# - name: "Install Pnpm" | |
# uses: "pnpm/action-setup@v2" | |
# with: | |
# version: "8" | |
# - name: "Install Node.js" | |
# uses: "actions/setup-node@v3" | |
# with: | |
# cache: "pnpm" | |
# node-version: "lts/*" | |
# - name: "Install the Node.js dependencies" | |
# run: "pnpm install" | |
# - uses: actions-rs/toolchain@v1 | |
# with: | |
# toolchain: stable | |
# - name: "Install Aderyn" | |
# run: "cargo install aderyn" | |
# - name: "Run the aderyn analyzer" | |
# run: "make aderyn" | |
test: | |
needs: ["build"] | |
runs-on: "ubuntu-latest" | |
steps: | |
- name: "Check out the repo" | |
uses: "actions/checkout@v3" | |
with: | |
submodules: "recursive" | |
- name: "Install Foundry" | |
uses: "foundry-rs/foundry-toolchain@v1" | |
- name: "Install Pnpm" | |
uses: "pnpm/action-setup@v2" | |
with: | |
version: "8" | |
- name: "Install Node.js" | |
uses: "actions/setup-node@v3" | |
with: | |
cache: "pnpm" | |
node-version: "lts/*" | |
- name: "Install the Node.js dependencies" | |
run: "pnpm install" | |
- name: "Show the Foundry config" | |
run: "forge config" | |
- name: "Generate a fuzz seed that changes weekly to avoid burning through RPC allowance" | |
run: > | |
echo "FOUNDRY_FUZZ_SEED=$( | |
echo $(($EPOCHSECONDS - $EPOCHSECONDS % 604800)) | |
)" >> $GITHUB_ENV | |
- name: "Run the tests" | |
run: "forge test" | |
- name: "Add test summary" | |
run: | | |
echo "## Tests result" >> $GITHUB_STEP_SUMMARY | |
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY |