Skip to content

refactoring

refactoring #3

Workflow file for this run

name: Foundry CI/CD
on:
push:
pull_request:
workflow_dispatch:
env:
TENDERLY_ACCESS_KEY: ${{ secrets.TENDERLY_ACCESS_KEY }}
TENDERLY_PROJECT_NAME: ${{ vars.TENDERLY_PROJECT_NAME }}
TENDERLY_ACCOUNT_NAME: ${{ vars.TENDERLY_ACCOUNT_NAME }}
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Build and Test
working-directory: ./examples/foundry
run: |
forge build
forge test -vvv
deploy:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Virtual TestNet
uses: Tenderly/[email protected]
with:
mode: CD
access_key: ${{ secrets.TENDERLY_ACCESS_KEY }}
project_name: ${{ vars.TENDERLY_PROJECT_NAME }}
account_name: ${{ vars.TENDERLY_ACCOUNT_NAME }}
network_id: 1
chain_id: 73571
public_explorer: true
verification_visibility: 'src'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Foundry Build
working-directory: ./examples/foundry
run: |
forge --version
forge build --sizes
- name: Fund Wallet
env:
TENDERLY_ADMIN_RPC_URL: ${{ env.TENDERLY_ADMIN_RPC_URL }}
WALLET_ADDRESS: ${{ secrets.WALLET_ADDRESS }}
run: |
curl --location $TENDERLY_ADMIN_RPC_URL \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"method": "tenderly_setBalance",
"params": ["$WALLET_ADDRESS", "0xDE0B6B3A7640000"],
"id": "1234"
}'
- name: Deploy Contracts
working-directory: ./examples/foundry
env:
FOUNDRY_ETH_RPC_URL: ${{ env.TENDERLY_PUBLIC_RPC_URL }}
TENDERLY_CHAIN_ID: ${{ env.TENDERLY_CHAIN_ID }}
FOUNDRY_VERIFIER_URL: ${{ env.TENDERLY_FOUNDRY_VERIFICATION_URL }}
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
TENDERLY_ACCESS_TOKEN: ${{ secrets.TENDERLY_ACCESS_KEY }}
run: |
forge script script/Counter.s.sol \
--private-key $PRIVATE_KEY \
--rpc-url $FOUNDRY_ETH_RPC_URL \
--verifier-url $FOUNDRY_VERIFIER_URL \
--etherscan-api-key $TENDERLY_ACCESS_TOKEN \
--slow \
--broadcast \
--verify