-
Notifications
You must be signed in to change notification settings - Fork 4
67 lines (62 loc) · 1.84 KB
/
Copy pathdeploy.yml
File metadata and controls
67 lines (62 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
name: Deploy SafeBase Contracts
on:
workflow_dispatch:
inputs:
network:
description: 'Network'
required: true
type: choice
options:
- sepolia
- mainnet
contract:
description: 'Contract to deploy'
required: true
type: choice
options:
- all
- Treasury
- AccessController
- Verifier
- PaymentTracker
- BasePay
- RulesEngine
- Registry
- SafeBaseEscrow
- Executor
force_new:
description: 'Force new proxy (ignore existing addresses)'
required: false
type: boolean
default: false
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Deploy ${{ inputs.contract }} to Base ${{ inputs.network }}
run: |
forge script script/DeployModular.s.sol \
--rpc-url ${{ inputs.network == 'mainnet' && 'https://mainnet.base.org' || 'https://sepolia.base.org' }} \
--broadcast \
--verify \
--verifier etherscan \
--etherscan-api-key ${{ secrets.BASESCAN_API_KEY }} \
-vvvv
env:
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
OWNER_ADDRESS: ${{ secrets.OWNER_ADDRESS }}
BASESCAN_API_KEY: ${{ secrets.BASESCAN_API_KEY }}
DEPLOY_CONTRACT: ${{ inputs.contract }}
FORCE_NEW: ${{ inputs.force_new }}
- name: Save deployment artifacts
uses: actions/upload-artifact@v4
with:
name: deployment-${{ inputs.contract }}-${{ inputs.network }}-${{ github.run_number }}
path: |
broadcast/
deployments/