@@ -17,24 +17,120 @@ jobs:
1717 TAG=${GITHUB_REF#refs/tags/dapp-v}
1818 echo "clean_tag=${TAG}" >> $GITHUB_OUTPUT
1919
20- deploy-multi-env-prod :
21- uses : ./.github/workflows/reusable-dapp-deploy.yml
22- strategy :
23- matrix :
24- environment :
25- [bellecour-prod, arbitrum-sepolia-prod, arbitrum-mainnet-prod]
20+ docker-publish :
21+ uses :
iExecBlockchainComputing/github-actions-workflows/.github/workflows/[email protected] 2622 needs : [extract-tag]
2723 with :
28- environment : ${{ matrix.environment }}
29- tag : ${{ needs.extract-tag.outputs.clean_tag }}
24+ image-name : ' iexechub/web3mail-dapp'
25+ registry : ' docker.io'
26+ dockerfile : ' dapp/Dockerfile'
27+ context : ' dapp'
28+ security-scan : true
29+ security-report : ' sarif'
30+ hadolint : true
31+ push : true
32+ image-tag : ${{ needs.extract-tag.outputs.clean_tag }}
33+ secrets :
34+ username : ${{ secrets.DOCKERHUB_USERNAME }}
35+ password : ${{ secrets.DOCKERHUB_PAT }}
36+
37+ sconify :
38+ uses :
iExecBlockchainComputing/github-actions-workflows/.github/workflows/[email protected] 39+ needs : [docker-publish]
40+ with :
41+ image-name : ' iexechub/web3mail-dapp'
42+ image-tag : ${{ needs.extract-tag.outputs.clean_tag }}
43+ sconify-debug : false
44+ sconify-prod : true
45+ docker-registry : docker.io
46+ sconify-version : ' 5.9.0-v15'
47+ binary : /usr/local/bin/node
48+ command : node /app/src/app.js
49+ host-path : |
50+ /etc/hosts
51+ /etc/resolv.conf
52+ binary-fs : true
53+ fs-dir : /app
54+ heap : 1G
55+ dlopen : 1
56+ mprotect : 1
3057 secrets :
31- dockerhub-username : ${{ secrets.DOCKERHUB_USERNAME }}
32- dockerhub-password : ${{ secrets.DOCKERHUB_PAT }}
33- sconify-signing-private-key : ${{ secrets.SCONIFY_SIGNING_PRIVATE_KEY }}
58+ docker-username : ${{ secrets.DOCKERHUB_USERNAME }}
59+ docker-password : ${{ secrets.DOCKERHUB_PAT }}
3460 scontain-username : ${{ secrets.SCONTAIN_REGISTRY_USERNAME }}
3561 scontain-password : ${{ secrets.SCONTAIN_REGISTRY_PAT }}
62+ scone-signing-key : ${{ secrets.SCONIFY_SIGNING_PRIVATE_KEY }}
63+
64+ deploy-multi-env-prod :
65+ runs-on : ubuntu-latest
66+ environment : ${{ matrix.environment }}
67+ needs : [sconify]
68+ strategy :
69+ matrix :
70+ environment :
71+ [bellecour-prod, arbitrum-sepolia-prod, arbitrum-mainnet-prod]
72+ steps :
73+ - name : Checkout code
74+ uses : actions/checkout@v4
75+
76+ - name : Setup Node.js
77+ uses : actions/setup-node@v4
78+ with :
79+ node-version : ' 18.19'
80+ cache : ' npm'
81+
82+ - name : Install dependencies
83+ run : |
84+ npm ci
85+ cd node_modules/whitelist-smart-contract
86+ npm install --save-dev ts-node
87+ cd ../../deployment-dapp
88+ npm ci
89+
90+ - name : Deploy dapp contract
91+ env :
92+ WALLET_PRIVATE_KEY : ${{ secrets.WEB3MAIL_DAPP_OWNER_PRIVATEKEY }}
93+ DOCKER_IMAGE_TAG : ${{ needs.sconify.outputs.prod-image-tag }}
94+ CHECKSUM : ${{ needs.sconify.outputs.prod-checksum }}
95+ FINGERPRINT : ${{ needs.sconify.outputs.prod-mrenclave }}
96+ RPC_URL : ${{ secrets.RPC_URL }}
97+ run : |
98+ cd deployment-dapp
99+ npm run deploy-dapp
36100
37- mailjet-apikey-public : ${{ secrets.MAILJET_APIKEY_PUBLIC }}
38- mailjet-apikey-private : ${{ secrets.MAILJET_APIKEY_PRIVATE }}
39- mailjet-sender : ${{ secrets.MAILJET_SENDER }}
40- mailgun-apikey : ${{ secrets.MAILGUN_APIKEY }}
101+ - name : Push dapp secret
102+ env :
103+ WALLET_PRIVATE_KEY : ${{ secrets.WEB3MAIL_DAPP_OWNER_PRIVATEKEY }}
104+ MJ_APIKEY_PUBLIC : ${{ secrets.MAILJET_APIKEY_PUBLIC }}
105+ MJ_APIKEY_PRIVATE : ${{ secrets.MAILJET_APIKEY_PRIVATE }}
106+ MJ_SENDER : ${{ secrets.MAILJET_SENDER }}
107+ MAILGUN_APIKEY : ${{ secrets.MAILGUN_APIKEY }}
108+ WEB3MAIL_WHITELISTED_APPS : ${{ vars.WEB3MAIL_WHITELISTED_APPS }}
109+ run : |
110+ cd deployment-dapp
111+ npm run push-dapp-secret
112+
113+ - name : Publish free sell order
114+ env :
115+ WALLET_PRIVATE_KEY : ${{ secrets.WEB3MAIL_DAPP_OWNER_PRIVATEKEY }}
116+ PRICE : ${{ vars.SELL_ORDER_PRICE }}
117+ VOLUME : ${{ vars.SELL_ORDER_VOLUME }}
118+ run : |
119+ cd deployment-dapp
120+ npm run publish-sell-order
121+
122+ - name : Add resource to whitelist
123+ env :
124+ CONTRACT_ADDRESS : ${{ secrets.WEB3MAIL_WHITELIST_CONTRACT_ADDRESS }}
125+ run : |
126+ cd node_modules/whitelist-smart-contract
127+ export ADDRESS_TO_ADD=$(cat ../../deployment-dapp/.app-address) && npm run addResourceToWhitelist
128+
129+ - name : Configure ENS
130+ if : ${{ vars.DAPP_ENS_NAME }}
131+ env :
132+ WALLET_PRIVATE_KEY : ${{ secrets.WEB3MAIL_DAPP_OWNER_PRIVATEKEY }}
133+ DAPP_ENS_NAME : ${{ vars.DAPP_ENS_NAME }}
134+ run : |
135+ cd deployment-dapp
136+ npm run configure-ens
0 commit comments