Skip to content

Commit 8a77dac

Browse files
CI: Parameterize the network
Ticket: BG-46442
1 parent 928f58f commit 8a77dac

File tree

2 files changed

+75
-4
lines changed

2 files changed

+75
-4
lines changed

.github/workflows/deploy_and_release.yml

Lines changed: 74 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
types: [published]
55
jobs:
66
lint-and-test:
7-
environment: mainnet
7+
environment: dev
88
runs-on: ubuntu-latest
99
steps:
1010
- uses: actions/checkout@v3
@@ -19,9 +19,77 @@ jobs:
1919
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
2020
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
2121
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
22-
deploy-and-update-release:
22+
POLYGON_API_KEY: ${{ secrets.POLYGON_API_KEY }}
23+
POLYGONSCAN_API_KEY: ${{ secrets.POLYGONSCAN_API_KEY }}
24+
get-network:
25+
runs-on: ubuntu-latest
26+
needs: [lint-and-test]
27+
outputs:
28+
network: ${{steps.network-name.outputs.result}}
29+
steps:
30+
- name: GET NETWORK NAME
31+
id: network-name
32+
uses: actions/github-script@v6
33+
with:
34+
github-token: ${{secrets.GITHUB_TOKEN}}
35+
result-encoding: string
36+
script: |
37+
const tag = process.env.GITHUB_REF_NAME;
38+
const regex = /v.*\-(eth|gteth|matic|tmatic)$/;
39+
const network = tag.match(regex);
40+
return network ? network[1] : "gteth";
41+
deploy-to-test:
42+
runs-on: ubuntu-latest
43+
needs: [lint-and-test, get-network]
44+
if: ${{ (needs.get-network.outputs.network == 'gteth' ) || (needs.get-network.outputs.network == 'tmatic' ) }}
45+
environment: testnet
46+
steps:
47+
- uses: actions/checkout@v2
48+
- name: Use Node.js
49+
uses: actions/setup-node@v3
50+
with:
51+
node-version: 14.x
52+
cache: 'npm'
53+
- run: npm install
54+
- run: npm run deploy-test --network ${{ needs.get-network.outputs.network }}
55+
env:
56+
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
57+
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
58+
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
59+
POLYGON_API_KEY: ${{ secrets.POLYGON_API_KEY }}
60+
POLYGONSCAN_API_KEY: ${{ secrets.POLYGONSCAN_API_KEY }}
61+
- name: Update release notes
62+
uses: actions/github-script@v6
63+
with:
64+
github-token: ${{secrets.GITHUB_TOKEN}}
65+
script: |
66+
const fs = require('fs');
67+
const path = require('path');
68+
var json;
69+
var html = "";
70+
try {
71+
json = JSON.parse(fs.readFileSync('./output.json').toString());
72+
for(const key in json){
73+
html += key+": "+json[key]+"<br>";
74+
}
75+
} catch (err){
76+
console.log("json file not found.");
77+
}
78+
const response= await github.rest.repos.getReleaseByTag({
79+
owner: context.repo.owner,
80+
repo: context.repo.repo,
81+
tag: "${{ github.event.release.tag_name }}"
82+
});
83+
github.rest.repos.updateRelease({
84+
owner: context.repo.owner,
85+
repo: context.repo.repo,
86+
release_id: response.data.id,
87+
body: html
88+
});
89+
deploy-to-prod:
2390
runs-on: ubuntu-latest
24-
needs: lint-and-test
91+
needs: [lint-and-test, get-network]
92+
if: ${{ (needs.get-network.outputs.network == 'eth' ) || (needs.get-network.outputs.network == 'matic' ) }}
2593
environment: mainnet
2694
steps:
2795
- uses: actions/checkout@v2
@@ -31,11 +99,13 @@ jobs:
3199
node-version: 14.x
32100
cache: 'npm'
33101
- run: npm install
34-
- run: npm run deploy-prod
102+
- run: npm run deploy-test
35103
env:
36104
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
37105
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
38106
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
107+
POLYGON_API_KEY: ${{ secrets.POLYGON_API_KEY }}
108+
POLYGONSCAN_API_KEY: ${{ secrets.POLYGONSCAN_API_KEY }}
39109
- name: Update release notes
40110
uses: actions/github-script@v6
41111
with:

.github/workflows/push.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,5 @@ jobs:
2727
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
2828
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
2929
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
30+
POLYGON_API_KEY: ${{ secrets.POLYGON_API_KEY }}
3031
- run: npm run lint

0 commit comments

Comments
 (0)