66 - ' web3mail-dapp-v*'
77
88jobs :
9- get-version :
9+ extract-tag :
1010 runs-on : ubuntu-latest
11+ outputs :
12+ clean_tag : ${{ steps.tag.outputs.clean_tag }}
1113 steps :
12- - name : Checkout code
13- uses : actions/checkout@v4
14-
15- - name : Set up Node.js
16- uses : actions/setup-node@v4
17- with :
18- node-version : ' 20'
19-
20- - name : Set publish version
21- id : set-publish-version
14+ - name : Extract tag
15+ id : tag
2216 run : |
23- GIT_TAG="${{ github.ref_name }}"
24- VERSION=$(echo "$GIT_TAG" | sed 's/web3mail-dapp-v//')
25- echo "VERSION=${VERSION}" | tee -a $GITHUB_OUTPUT
26- echo "GIT_TAG=${GIT_TAG}" | tee -a $GITHUB_OUTPUT
27- outputs :
28- version : ${{ steps.set-publish-version.outputs.VERSION }}
17+ TAG=${GITHUB_REF#refs/tags/web3mail-dapp-v}
18+ echo "clean_tag=${TAG}" >> $GITHUB_OUTPUT
19+
20+ build-push :
21+ needs : extract-tag
22+ uses : iExecBlockchainComputing/github-actions-workflows/.github/workflows/docker-build.yml@main
23+ with :
24+ image-name : ' product/web3mail-dapp'
25+ image-tag : ${{ needs.extract-tag.outputs.clean_tag }}
26+ push : true
27+ dockerfile : ' dapp/Dockerfile'
28+ security-scan : false
29+ hadolint : false
30+ registry : ' docker.io'
31+ context : ' dapp'
32+ secrets :
33+ username : ${{ secrets.REGIS_USERNAME }}
34+ password : ${{ secrets.REGIS_PASSWORD }}
2935
30- # Single sconification job for both environments
3136 sconify :
32- uses :
iExecBlockchainComputing/github-actions-workflows/.github/workflows/[email protected] 37+ needs : [extract-tag, build-push]
38+ uses :
iExecBlockchainComputing/github-actions-workflows/.github/workflows/[email protected] 3339 with :
3440 image-name : product/web3mail-dapp
35- image-tag : ${{ github.ref_name }}
41+ image-tag : ${{ needs.extract-tag.outputs.clean_tag }}
3642 sconify-debug : false
3743 sconify-prod : true
3844 docker-registry : docker.io
@@ -47,97 +53,13 @@ jobs:
4753 heap : 1G
4854 dlopen : 1
4955 mprotect : 1
50- docker-username : ${{ vars.DOCKERHUB_USERNAME }}
51- scontain-username : ${{ vars.SCONTAIN_REGISTRY_USERNAME }}
5256 secrets :
57+ docker-username : ${{ secrets.DOCKERHUB_USERNAME }}
5358 docker-password : ${{ secrets.DOCKERHUB_PAT }}
59+ scontain-username : ${{ secrets.SCONTAIN_REGISTRY_USERNAME }}
5460 scontain-password : ${{ secrets.SCONTAIN_REGISTRY_PAT }}
5561 scone-signing-key : ${{ secrets.SCONIFY_SIGNING_PRIVATE_KEY }}
5662
57- # Deploy to Dev Environment
58- deploy-dapp-dev :
59- runs-on : ubuntu-latest
60- needs : sconify
61- steps :
62- - name : Checkout code
63- uses : actions/checkout@v4
64-
65- - name : Setup Node.js
66- uses : actions/setup-node@v4
67- with :
68- node-version : ' 20'
69- cache : ' npm'
70-
71- - name : Install dependencies
72- run : |
73- npm ci
74- cd node_modules/whitelist-smart-contract
75- npm install --save-dev ts-node
76- cd ../../deployment-dapp
77- npm ci
78-
79- - name : Create scone fingerprint file (dev)
80- run : |
81- MRENCLAVE="${{ needs.sconify.outputs.prod-mrenclave }}"
82- echo "$MRENCLAVE" > deployment-dapp/.scone-fingerprint
83-
84- - name : Deploy dapp contract (dev)
85- env :
86- DEPLOY_ENVIRONMENT : dapp-dev
87- WALLET_PRIVATE_KEY_DEV : ${{ secrets.WEB3MAIL_DAPP_OWNER_DEV_PRIVATEKEY }}
88- DOCKER_IMAGE_CHECKSUM_DEV : ${{ needs.sconify.outputs.prod-checksum }}
89- run : |
90- cd deployment-dapp
91- npm run deploy-dapp
92-
93- - name : Push dapp secret (dev)
94- env :
95- DEPLOY_ENVIRONMENT : dapp-dev
96- WALLET_PRIVATE_KEY_DEV : ${{ secrets.WEB3MAIL_DAPP_OWNER_DEV_PRIVATEKEY }}
97- MJ_APIKEY_PUBLIC : ${{ secrets.MJ_APIKEY_PUBLIC }}
98- MJ_APIKEY_PRIVATE : ${{ secrets.MJ_APIKEY_PRIVATE }}
99- MJ_SENDER : ${{ secrets.MJ_SENDER }}
100- MAILGUN_APIKEY : ${{ secrets.MAILGUN_APIKEY }}
101- WEB3MAIL_WHITELISTED_APPS_DEV : ${{ secrets.WEB3MAIL_WHITELISTED_APPS_DEV }}
102- run : |
103- cd deployment-dapp
104- npm run push-dapp-secret
105-
106- - name : Publish free sell order (dev)
107- env :
108- DEPLOY_ENVIRONMENT : dapp-dev
109- WALLET_PRIVATE_KEY_DEV : ${{ secrets.WEB3MAIL_DAPP_OWNER_DEV_PRIVATEKEY }}
110- PRICE : ' 0'
111- VOLUME : ' 1000000000'
112- run : |
113- cd deployment-dapp
114- npm run publish-sell-order
115-
116- - name : Add resource to whitelist (dev)
117- env :
118- WALLET_PRIVATE_KEY : ${{ secrets.WEB3MAIL_DAPP_OWNER_DEV_PRIVATEKEY }}
119- CONTRACT_ADDRESS : ${{ secrets.WEB3MAIL_WHITELIST_DEV_ADDRESS }}
120- run : |
121- cd node_modules/whitelist-smart-contract
122- export ADDRESS_TO_ADD=$(cat ../../deployment-dapp/.app-address) && npm run addResourceToWhitelist
123-
124- - name : Configure ENS (dev)
125- env :
126- DEPLOY_ENVIRONMENT : dapp-dev
127- WALLET_PRIVATE_KEY_DEV : ${{ secrets.WEB3MAIL_DAPP_OWNER_DEV_PRIVATEKEY }}
128- run : |
129- cd deployment-dapp
130- npm run configure-ens
131-
132- - name : Upload deployment artifacts (dev)
133- uses : actions/upload-artifact@v4
134- with :
135- name : deployment-artifacts-dev
136- path : |
137- deployment-dapp/.app-address
138- deployment-dapp/.scone-fingerprint
139-
140- # Deploy to Prod Environment
14163 deploy-dapp-prod :
14264 runs-on : ubuntu-latest
14365 needs : sconify
16991 DEPLOY_ENVIRONMENT : dapp-prod
17092 WALLET_PRIVATE_KEY_PROD : ${{ secrets.WEB3MAIL_DAPP_OWNER_PROD_PRIVATEKEY }}
17193 DOCKER_IMAGE_CHECKSUM_PROD : ${{ needs.sconify.outputs.prod-checksum }}
94+ DOCKER_IMAGE_PROD_TAG : ${{ needs.sconify.outputs.prod-image-tag }}
17295 run : |
17396 cd deployment-dapp
17497 npm run deploy-dapp
0 commit comments