forked from InjectiveLabs/injective-helix-demo
-
Notifications
You must be signed in to change notification settings - Fork 0
188 lines (158 loc) · 6.64 KB
/
Copy pathmainnet.yml
File metadata and controls
188 lines (158 loc) · 6.64 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
name: Helix Mainnet Deployments
on:
workflow_dispatch:
push:
branches:
- master
jobs:
mainnet:
if: false
name: 'Deploy to mainnet'
runs-on: blacksmith-8vcpu-ubuntu-2204
timeout-minutes: 45
env:
## Public
VITE_NAME: 'Helix | The Premier Decentralized Spot and Derivatives Exchange'
VITE_PRODUCT: helix
VITE_BASE_URL: https://helixapp.com
VITE_ENV: mainnet
VITE_NETWORK: internal
VITE_ETHEREUM_CHAIN_ID: 1
VITE_CHAIN_ID: injective-1
SOURCE_DIR: .output/public
DEST_DIR: www
## Github Actions
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
## Flags
VITE_SHOW_REDEEM_VOUCHER: true
VITE_MAINTENANCE_DISABLED: false
VITE_IS_ONRAMPER_DEV_MODE: false
## Endpoints
# VITE_INDEXER_API_ENDPOINT: ''
VITE_INDEXER_API_ENDPOINT: ''
VITE_CHRONOS_API_ENDPOINT: ''
VITE_EXPLORER_API_ENDPOINT: ''
VITE_SENTRY_GRPC_ENDPOINT: ''
VITE_SENTRY_REST_ENDPOINT: ''
## Geo location & VPN checks
VITE_VPN_CHECKS_ENABLED: false
VITE_GEO_IP_RESTRICTIONS_ENABLED: true
VITE_GOOGLE_MAPS_KEY: ${{ secrets.VITE_GOOGLE_MAPS_KEY }}
VITE_PROXY_DETECTION_API_KEY: ${{ secrets.VITE_PROXY_DETECTION_API_KEY }}
## Secret
GH_TOKEN: ${{ secrets.GH_TOKEN }}
NUXT_CLARITY_ID: ${{ secrets.NUXT_CLARITY_ID }}
VITE_BUGSNAG_KEY: ${{ secrets.VITE_BUGSNAG_KEY }}
VITE_FEE_RECIPIENT: ${{ secrets.VITE_FEE_RECIPIENT }}
VITE_FEE_PAYER_PUB_KEY: ${{ secrets.VITE_FEE_PAYER_PUB_KEY }}
VITE_FAUCET_MAINNET_API: ${{ secrets.VITE_FAUCET_MAINNET_API }}
VITE_HOTJAR_KEY: ${{ secrets.VITE_HOTJAR_KEY }}
VITE_ALCHEMY_KEY: ${{ secrets.VITE_ALCHEMY_KEY }}
VITE_MIXPANEL_KEY: ${{ secrets.VITE_MIXPANEL_KEY }}
VITE_TURNKEY_ORGID: ${{ secrets.VITE_TURNKEY_ORGID }}
VITE_MAGIC_APK_KEY: ${{ secrets.VITE_MAGIC_APK_KEY }}
VITE_COINGECKO_API_KEY: ${{ secrets.VITE_COINGECKO_API_KEY }}
VITE_SHEETDB_BEARER_TOKEN: ${{ secrets.VITE_SHEETDB_BEARER_TOKEN }}
VITE_ONRAMPER_SIGNING_KEY: ${{ secrets.VITE_ONRAMPER_SIGNING_KEY }}
VITE_ONRAMPER_API_KEY_DEV: ${{ secrets.VITE_ONRAMPER_API_KEY_DEV }}
VITE_ONRAMPER_API_KEY_PROD: ${{ secrets.VITE_ONRAMPER_API_KEY_PROD }}
VITE_TURNKEY_GOOGLE_CLIENT_ID: ${{ secrets.VITE_TURNKEY_GOOGLE_CLIENT_ID }}
VITE_WALLET_CONNECT_PROJECT_ID: ${{ secrets.VITE_WALLET_CONNECT_PROJECT_ID }}
VITE_GOOGLE_ANALYTICS_KEY: ${{ secrets.VITE_GOOGLE_ANALYTICS_KEY }}
VITE_GOOGLE_SITE_VERIFICATION_KEY: ${{ secrets.VITE_GOOGLE_SITE_VERIFICATION_KEY }}
VITE_NEWSLETTER_API: ${{ secrets.VITE_NEWSLETTER_API }}
VITE_NINJA_PASS_ENDPOINT: ${{ secrets.VITE_NINJA_PASS_ENDPOINT }}
AWS_REGION: ${{ secrets.AWS_MAINNET_REGION }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_S3_BUCKET: ${{ secrets.AWS_S3_MAINNET_BUCKET }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
CLOUDFRONT_DISTRIBUTION_ID: ${{ secrets.CLOUDFRONT_MAINNET_DISTRIBUTION_ID }}
VITE_HELIX_MOBILE_CONNECT_SERVER_URL: ${{ secrets.VITE_HELIX_MOBILE_CONNECT_SERVER_URL }}
NODE_OPTIONS: '--max_old_space_size=30720'
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 100
fetch-tags: true
- name: Using Node ${{ matrix.node-version }}
uses: useblacksmith/setup-node@v5
with:
node-version-file: '.nvmrc'
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: latest
- name: Get current version
id: get_version
run: |
git fetch --tags
latest_tag=$(git tag | sort -V | tail -n 1)
echo "current_version=$latest_tag" >> $GITHUB_ENV
- name: Generate GitHub Release Notes
id: release_notes
uses: InjectiveLabs/github-fe/actions/release-note@master
with:
previous_tag: ${{ env.current_version }}
repo_url: 'https://github.com/InjectiveLabs/injective-helix'
- name: Create Release
if: steps.release_notes.outputs.release_notes != 'No new commits'
id: create_release
uses: ncipollo/release-action@v1
with:
token: '${{ env.GH_TOKEN }}'
tag: ${{ steps.release_notes.outputs.new_version }}
name: Helix Release ${{ steps.release_notes.outputs.new_version }}
body: |
## Changes
${{ steps.release_notes.outputs.release_notes }}
draft: true
- name: Build app
run: |
pnpm install
pnpm clean-up
pnpm generate
env:
GIT_TAG: ${{ steps.release_notes.outputs.bugsnag_version }}
- name: Use AWS CLI
uses: chrislennon/action-aws-cli@v1.1
- name: Sync to S3 bucket
run: aws s3 sync dist/ s3://$AWS_S3_BUCKET/www --follow-symlinks --delete
- name: Set Cache Headers
run: aws s3 cp s3://$AWS_S3_BUCKET/www s3://$AWS_S3_BUCKET/www --exclude "*" --include "*.js" --include "*.css" --include "*.svg" --include "*.woff2" --include "*.woff" --include "*.ttf" --recursive --metadata-directive REPLACE --expires 2034-01-01T00:00:00Z --cache-control max-age=2592000,public
- name: Invalidate Cloudfront CDN
run: aws cloudfront create-invalidation --distribution-id=$CLOUDFRONT_DISTRIBUTION_ID --paths "/*"
- name: Publish release
if: steps.release_notes.outputs.release_notes != 'No new commits'
uses: StuYarrow/publish-release@v1.1.2
env:
GITHUB_TOKEN: ${{ env.GH_TOKEN }}
with:
id: ${{ steps.create_release.outputs.id }}
- name: Delete draft releases
if: failure()
uses: hugo19941994/delete-draft-releases@v1.0.0
with:
threshold: 1s
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
- name: Upload bugsnag release
uses: ricado-group/bugsnag-sourcemaps-upload-action@v1
with:
apiKey: ${{ env.VITE_BUGSNAG_KEY }}
directory: ./.nuxt/dist/client/_nuxt
baseUrl: ${{ env.VITE_BASE_URL }}
appVersion: ${{ steps.release_notes.outputs.bugsnag_version }}
overwrite: true
outputs:
release_notes: ${{ steps.release_notes.outputs.release_notes }}
notify-slack-on-deployment:
runs-on: blacksmith-4vcpu-ubuntu-2204
needs: mainnet-release
steps:
- name: 'Notify Slack'
uses: InjectiveLabs/github-fe/actions/prod-deployment-notification@master
with:
project-name: 'Helix'
webhook-url: ${{ secrets.PRODUCTION_CHANNEL_WEBHOOK_URL }}
release-notes: ${{ needs.mainnet-release.outputs.release_notes }}