11name : Deploy Batcher Contract and Update Release
22on :
3- release :
4- types : [published]
3+ release :
4+ types : [published]
55jobs :
66 lint-and-test :
77 environment : dev
88 runs-on : ubuntu-latest
99 steps :
10- - uses : actions/checkout@v4
11- - name : Use Node.js
12- uses : actions/setup-node@v4
13- with :
14- cache : ' npm'
15- - run : npm install
16- - run : npm run lint
17- - run : npm run test
18- env :
19- MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT : ${{ secrets.MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
20- TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT : ${{ secrets.TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
21- PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT : ${{ secrets.PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT }}
22- PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP : ${{ secrets.PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP }}
23- PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT : ${{ secrets.PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT }}
24- PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT : ${{ secrets.PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT }}
25- QUICKNODE_ETH_MAINNET_API_KEY : ${{ secrets.QUICKNODE_ETH_MAINNET_API_KEY }}
26- QUICKNODE_ETH_HOLESKY_API_KEY : ${{ secrets.QUICKNODE_ETH_HOLESKY_API_KEY }}
27- QUICKNODE_ARBITRUM_SEPOLIA_API_KEY : ${{ secrets.QUICKNODE_ARBITRUM_SEPOLIA_API_KEY }}
28- QUICKNODE_ARBITRUM_ONE_API_KEY : ${{ secrets.QUICKNODE_ARBITRUM_ONE_API_KEY }}
29- QUICKNODE_OPTIMISM_SEPOLIA_API_KEY : ${{ secrets.QUICKNODE_OPTIMISM_SEPOLIA_API_KEY }}
30- QUICKNODE_OPTIMISM_API_KEY : ${{ secrets.QUICKNODE_OPTIMISM_API_KEY }}
31- QUICKNODE_ZKSYNC_SEPOLIA_API_KEY : ${{ secrets.QUICKNODE_ZKSYNC_SEPOLIA_API_KEY }}
32- ETHERSCAN_API_KEY : ${{ secrets.ETHERSCAN_API_KEY }}
33- ALCHEMY_POLYGON_API_KEY : ${{ secrets.ALCHEMY_POLYGON_API_KEY }}
34- POLYGONSCAN_API_KEY : ${{ secrets.POLYGONSCAN_API_KEY }}
35- BSCSCAN_API_KEY : ${{ secrets.BSCSCAN_API_KEY }}
36- ARBISCAN_API_KEY : ${{ secrets.ARBISCAN_API_KEY }}
37- OPTIMISTIC_ETHERSCAN_API_KEY : ${{ secrets.OPTIMISTIC_ETHERSCAN_API_KEY }}
38- ZKSYNC_EXPLORER_API_KEY : ${{ secrets.ZKSYNC_EXPLORER_API_KEY }}
39- BASESCAN_API_KEY : ${{ secrets.BASESCAN_API_KEY }}
40- BARTIO_BERA_EXPLORER_API_KEY : ${{ secrets.BARTIO_BERA_EXPLORER_API_KEY }}
41- OAS_EXPLORER_API_KEY : ${{ secrets.OAS_EXPLORER_API_KEY }}
42- CORE_DAO_TESTNET_EXPLORER_API_KEY : ${{ secrets.CORE_DAO_TESTNET_EXPLORER_API_KEY }}
43- CORE_DAO_MAINNET_EXPLORER_API_KEY : ${{ secrets.CORE_DAO_MAINNET_EXPLORER_API_KEY }}
10+ - uses : actions/checkout@v4
11+ - name : Use Node.js
12+ uses : actions/setup-node@v4
13+ with :
14+ cache : ' npm'
15+ - run : npm install
16+ - run : npm run lint
17+ - run : npm run test
18+ env :
19+ MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT : ${{ secrets.MAINNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
20+ TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT : ${{ secrets.TESTNET_PRIVATE_KEY_FOR_CONTRACT_DEPLOYMENT }}
21+ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT : ${{ secrets.PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT }}
22+ PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP : ${{ secrets.PRIVATE_KEY_FOR_V4_CONTRACT_DEPLOYMENT_BACKUP }}
23+ PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT : ${{ secrets.PRIVATE_KEY_FOR_V1_WALLET_CONTRACT_DEPLOYMENT }}
24+ PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT : ${{ secrets.PRIVATE_KEY_FOR_BATCHER_CONTRACT_DEPLOYMENT }}
25+ QUICKNODE_ETH_MAINNET_API_KEY : ${{ secrets.QUICKNODE_ETH_MAINNET_API_KEY }}
26+ QUICKNODE_ETH_HOLESKY_API_KEY : ${{ secrets.QUICKNODE_ETH_HOLESKY_API_KEY }}
27+ QUICKNODE_ARBITRUM_SEPOLIA_API_KEY : ${{ secrets.QUICKNODE_ARBITRUM_SEPOLIA_API_KEY }}
28+ QUICKNODE_ARBITRUM_ONE_API_KEY : ${{ secrets.QUICKNODE_ARBITRUM_ONE_API_KEY }}
29+ QUICKNODE_OPTIMISM_SEPOLIA_API_KEY : ${{ secrets.QUICKNODE_OPTIMISM_SEPOLIA_API_KEY }}
30+ QUICKNODE_OPTIMISM_API_KEY : ${{ secrets.QUICKNODE_OPTIMISM_API_KEY }}
31+ QUICKNODE_ZKSYNC_SEPOLIA_API_KEY : ${{ secrets.QUICKNODE_ZKSYNC_SEPOLIA_API_KEY }}
32+ ETHERSCAN_API_KEY : ${{ secrets.ETHERSCAN_API_KEY }}
33+ ALCHEMY_POLYGON_API_KEY : ${{ secrets.ALCHEMY_POLYGON_API_KEY }}
34+ POLYGONSCAN_API_KEY : ${{ secrets.POLYGONSCAN_API_KEY }}
35+ BSCSCAN_API_KEY : ${{ secrets.BSCSCAN_API_KEY }}
36+ ARBISCAN_API_KEY : ${{ secrets.ARBISCAN_API_KEY }}
37+ OPTIMISTIC_ETHERSCAN_API_KEY : ${{ secrets.OPTIMISTIC_ETHERSCAN_API_KEY }}
38+ ZKSYNC_EXPLORER_API_KEY : ${{ secrets.ZKSYNC_EXPLORER_API_KEY }}
39+ BASESCAN_API_KEY : ${{ secrets.BASESCAN_API_KEY }}
40+ BARTIO_BERA_EXPLORER_API_KEY : ${{ secrets.BARTIO_BERA_EXPLORER_API_KEY }}
41+ OAS_EXPLORER_API_KEY : ${{ secrets.OAS_EXPLORER_API_KEY }}
42+ CORE_DAO_TESTNET_EXPLORER_API_KEY : ${{ secrets.CORE_DAO_TESTNET_EXPLORER_API_KEY }}
43+ CORE_DAO_MAINNET_EXPLORER_API_KEY : ${{ secrets.CORE_DAO_MAINNET_EXPLORER_API_KEY }}
44+ FLARE_EXPLORER_API_KEY : ${{ secrets.FLARE_EXPLORER_API_KEY }}
45+ SONGBIRD_EXPLORER_API_KEY : ${{ secrets.SONGBIRD_EXPLORER_API_KEY }}
4446 get-network :
4547 runs-on : ubuntu-latest
4648 needs : [lint-and-test]
5557 result-encoding : string
5658 script : |
5759 const tag = process.env.GITHUB_REF_NAME;
58- const regex = /v.*\-(eth|hteth|matic|tmatic|bsc|tbsc|arbeth|tarbeth|opeth|topeth|zketh|tzketh|baseeth|tbaseeth|bera|tbera|tavaxc|avaxc|toas|oas|tcoredao|coredao)$/;
60+ const regex = /v.*\-(eth|hteth|matic|tmatic|bsc|tbsc|arbeth|tarbeth|opeth|topeth|zketh|tzketh|baseeth|tbaseeth|bera|tbera|tavaxc|avaxc|toas|oas|tcoredao|coredao|flr|tflr|sgb|tsgb )$/;
5961 const matchedNetwork = tag.match(regex);
6062 if (!matchedNetwork) {
6163 console.log("No match found for the network name, defaulting to 'hteth'.");
6567 deploy-batcher-contract-to-test :
6668 runs-on : ubuntu-latest
6769 needs : [lint-and-test, get-network]
68- if : ${{ (needs.get-network.outputs.network == 'hteth' ) || (needs.get-network.outputs.network == 'tmatic' ) || (needs.get-network.outputs.network == 'tbsc' ) || (needs.get-network.outputs.network == 'tarbeth' ) || (needs.get-network.outputs.network == 'topeth' ) || (needs.get-network.outputs.network == 'tzketh' ) || (needs.get-network.outputs.network == 'tbaseeth' ) || (needs.get-network.outputs.network == 'tbera' ) || (needs.get-network.outputs.network == 'tavaxc' ) || (needs.get-network.outputs.network == 'tcoredao' ) || (needs.get-network.outputs.network == 'toas' ) }}
70+ if : ${{ (needs.get-network.outputs.network == 'hteth' ) || (needs.get-network.outputs.network == 'tmatic' ) || (needs.get-network.outputs.network == 'tbsc' ) || (needs.get-network.outputs.network == 'tarbeth' ) || (needs.get-network.outputs.network == 'topeth' ) || (needs.get-network.outputs.network == 'tzketh' ) || (needs.get-network.outputs.network == 'tbaseeth' ) || (needs.get-network.outputs.network == 'tbera' ) || (needs.get-network.outputs.network == 'tavaxc' ) || (needs.get-network.outputs.network == 'tcoredao' ) || (needs.get-network.outputs.network == 'toas' ) || (needs.get-network.outputs.network == 'tflr' ) || (needs.get-network.outputs.network == 'tsgb ' ) }}
6971 environment : testnet
7072 steps :
7173 - uses : actions/checkout@v4
99101 OAS_EXPLORER_API_KEY : ${{ secrets.OAS_EXPLORER_API_KEY }}
100102 CORE_DAO_TESTNET_EXPLORER_API_KEY : ${{ secrets.CORE_DAO_TESTNET_EXPLORER_API_KEY }}
101103 CORE_DAO_MAINNET_EXPLORER_API_KEY : ${{ secrets.CORE_DAO_MAINNET_EXPLORER_API_KEY }}
104+ FLARE_EXPLORER_API_KEY : ${{ secrets.FLARE_EXPLORER_API_KEY }}
105+ SONGBIRD_EXPLORER_API_KEY : ${{ secrets.SONGBIRD_EXPLORER_API_KEY }}
102106 - name : Update release notes
103107 uses : actions/github-script@v7
104108 with :
@@ -110,7 +114,7 @@ jobs:
110114 deploy-batcher-contract-to-prod :
111115 runs-on : ubuntu-latest
112116 needs : [lint-and-test, get-network]
113- if : ${{ (needs.get-network.outputs.network == 'eth' ) || (needs.get-network.outputs.network == 'matic' ) || (needs.get-network.outputs.network == 'bsc' ) || (needs.get-network.outputs.network == 'arbeth' ) || (needs.get-network.outputs.network == 'opeth' ) || (needs.get-network.outputs.network == 'zketh' ) || (needs.get-network.outputs.network == 'baseeth' ) || (needs.get-network.outputs.network == 'bera' ) || (needs.get-network.outputs.network == 'avaxc' ) || (needs.get-network.outputs.network == 'coredao' ) || (needs.get-network.outputs.network == 'oas' ) }}
117+ if : ${{ (needs.get-network.outputs.network == 'eth' ) || (needs.get-network.outputs.network == 'matic' ) || (needs.get-network.outputs.network == 'bsc' ) || (needs.get-network.outputs.network == 'arbeth' ) || (needs.get-network.outputs.network == 'opeth' ) || (needs.get-network.outputs.network == 'zketh' ) || (needs.get-network.outputs.network == 'baseeth' ) || (needs.get-network.outputs.network == 'bera' ) || (needs.get-network.outputs.network == 'avaxc' ) || (needs.get-network.outputs.network == 'coredao' ) || (needs.get-network.outputs.network == 'oas' ) || (needs.get-network.outputs.network == 'sgb' ) || (needs.get-network.outputs.network == 'flr ' ) }}
114118 environment : mainnet
115119 steps :
116120 - uses : actions/checkout@v4
@@ -144,6 +148,8 @@ jobs:
144148 OAS_EXPLORER_API_KEY : ${{ secrets.OAS_EXPLORER_API_KEY }}
145149 CORE_DAO_TESTNET_EXPLORER_API_KEY : ${{ secrets.CORE_DAO_TESTNET_EXPLORER_API_KEY }}
146150 CORE_DAO_MAINNET_EXPLORER_API_KEY : ${{ secrets.CORE_DAO_MAINNET_EXPLORER_API_KEY }}
151+ FLARE_EXPLORER_API_KEY : ${{ secrets.FLARE_EXPLORER_API_KEY }}
152+ SONGBIRD_EXPLORER_API_KEY : ${{ secrets.SONGBIRD_EXPLORER_API_KEY }}
147153 - name : Update release notes
148154 uses : actions/github-script@v7
149155 with :
0 commit comments