3
3
branches :
4
4
- dev
5
5
6
- name : Build and deploy to AWS Staging
6
+ name : Deploy to AWS Staging
7
7
8
8
jobs :
9
9
deploy :
10
- name : Build and deploy to AWS Staging
10
+ name : Deploy
11
11
runs-on : ubuntu-latest
12
12
env :
13
13
AWS_REGION : eu-central-1
14
- ENVIRONMENT_TAG : staging
14
+ ECR_REPO_NAME : summer-fi- staging
15
15
SERVICE_NAME : summer-fi-staging
16
16
CLUSTER_NAME : summer-fi-staging
17
- CONFIG_URL : ${{ secrets.CONFIG_URL }}
18
17
19
18
steps :
20
19
- name : Checkout
21
20
uses : actions/checkout@v3
22
21
23
- - name : Setup node
24
- uses : actions/setup-node@v3
25
- with :
26
- node-version : 18.12
27
-
28
- - name : Extract commit hash
29
- id : vars
30
- shell : bash
31
- run : |
32
- echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
33
-
34
- - name : Use modules cache
35
- uses : actions/cache@v3
36
- id : yarn-cache
37
- with :
38
- path : ' **/node_modules'
39
- key : ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
40
-
41
- - name : Install packages
42
- if : steps.yarn-cache.outputs.cache-hit != 'true'
43
- run : yarn --no-progress --non-interactive --frozen-lockfile
44
-
45
- - name : Run postinstall
46
- if : steps.yarn-cache.outputs.cache-hit == 'true'
47
- run : yarn postinstall
48
-
49
- - name : Use next cache
50
- uses : jongwooo/next-cache@v1
51
-
52
- - name : Build standalone app
53
- id : build-app
54
- env :
55
- NODE_OPTIONS : ' --max_old_space_size=4096'
56
- SHA_TAG : ${{ steps.vars.outputs.sha_short }}
57
- LATEST_TAG : latest
58
- CONFIG_URL : ${{ secrets.CONFIG_URL }}
59
- COMMIT_SHA : ${{ steps.vars.outputs.sha_short }}
60
- NOTIFICATIONS_HOST : ${{ secrets.NOTIFICATIONS_HOST_STAGING }}
61
- NOTIFICATIONS_HOST_GOERLI : ${{ secrets.NOTIFICATIONS_HOST_STAGING_GOERLI }}
62
- AJNA_SUBGRAPH_URL : ${{ secrets.AJNA_SUBGRAPH_URL_STAGING }}
63
- AJNA_SUBGRAPH_URL_GOERLI : ${{ secrets.AJNA_SUBGRAPH_URL_GOERLI }}
64
- AJNA_SUBGRAPH_V2_URL : ${{ secrets.AJNA_SUBGRAPH_V2_URL_STAGING }}
65
- AJNA_SUBGRAPH_V2_URL_GOERLI : ${{ secrets.AJNA_SUBGRAPH_V2_URL_GOERLI }}
66
- MIXPANEL_ENV : staging
67
- MIXPANEL_KEY : ${{ secrets.MIXPANEL_KEY_STAGING }}
68
- ADROLL_ADV_ID : ${{ secrets.ADROLL_ADV_ID_STAGING }}
69
- ADROLL_PIX_ID : ${{ secrets.ADROLL_PIX_ID_STAGING }}
70
- MAINNET_CACHE_URL : ${{ secrets.MAINNET_CACHE_URL_STAGING }}
71
- MAILCHIMP_ENDPOINT : ${{ secrets.MAILCHIMP_ENDPOINT }}
72
- MAILCHIMP_API_KEY : ${{ secrets.MAILCHIMP_API_KEY }}
73
- INFURA_PROJECT_ID : ${{ secrets.INFURA_PROJECT_ID_STAGING }}
74
- ETHERSCAN_API_KEY : ${{ secrets.ETHERSCAN_API_KEY }}
75
- BLOCKNATIVE_API_KEY : ${{ secrets.BLOCKNATIVE_API_KEY_STAGING }}
76
- SHOW_BUILD_INFO : 1
77
- NODE_ENV : production
78
- NEXT_PUBLIC_SENTRY_ENV : staging
79
- SENTRY_AUTH_TOKEN : ${{ secrets.SENTRY_AUTH_TOKEN }}
80
- PRODUCT_HUB_KEY : ${{ secrets.PRODUCT_HUB_KEY }}
81
- ONE_INCH_API_KEY : ${{ secrets.ONE_INCH_API_KEY_STAGING }}
82
- ONE_INCH_API_URL : ${{ secrets.ONE_INCH_API_URL_STAGING }}
83
- REFERRAL_SUBGRAPH_URL : ${{ secrets.REFERRAL_SUBGRAPH_URL_STAGING }}
84
- run : yarn build
85
-
86
22
- name : Configure AWS credentials
87
23
uses : aws-actions/configure-aws-credentials@v2
88
24
with :
@@ -94,18 +30,51 @@ jobs:
94
30
id : login-ecr
95
31
uses : aws-actions/amazon-ecr-login@v1
96
32
97
- - name : Build runner image
33
+ - name : Extract commit hash
34
+ id : vars
35
+ shell : bash
36
+ run : |
37
+ echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
38
+
39
+ - name : Build, tag, and push image to Amazon ECR
98
40
id : build-image
99
41
env :
100
42
SHA_TAG : ${{ steps.vars.outputs.sha_short }}
101
43
LATEST_TAG : latest
102
- ECR_REPO_NAME : summer-fi- staging
44
+ ENVIRONMENT_TAG : staging
103
45
ECR_REGISTRY : ${{ steps.login-ecr.outputs.registry }}
46
+ CONFIG_URL : ${{ secrets.CONFIG_URL }}
104
47
run : |
105
48
# Build a docker container and
106
49
# push it to ECR so that it can
107
50
# be deployed to ECS.
108
- docker build --cache-from=$ECR_REGISTRY/$ECR_REPO_NAME:$LATEST_TAG \
51
+ docker build --build-arg COMMIT_SHA=${{ env.SHA_TAG }} \
52
+ --build-arg NOTIFICATIONS_HOST=${{ secrets.NOTIFICATIONS_HOST_STAGING }} \
53
+ --build-arg NOTIFICATIONS_HOST_GOERLI=${{ secrets.NOTIFICATIONS_HOST_STAGING_GOERLI }} \
54
+ --build-arg AJNA_SUBGRAPH_URL=${{ secrets.AJNA_SUBGRAPH_URL_STAGING }} \
55
+ --build-arg AJNA_SUBGRAPH_URL_GOERLI=${{ secrets.AJNA_SUBGRAPH_URL_GOERLI }} \
56
+ --build-arg AJNA_SUBGRAPH_V2_URL=${{ secrets.AJNA_SUBGRAPH_V2_URL_STAGING }} \
57
+ --build-arg AJNA_SUBGRAPH_V2_URL_GOERLI=${{ secrets.AJNA_SUBGRAPH_V2_URL_GOERLI }} \
58
+ --build-arg MIXPANEL_ENV=staging \
59
+ --build-arg MIXPANEL_KEY=${{ secrets.MIXPANEL_KEY_STAGING }} \
60
+ --build-arg ADROLL_ADV_ID=${{ secrets.ADROLL_ADV_ID_STAGING }} \
61
+ --build-arg ADROLL_PIX_ID=${{ secrets.ADROLL_PIX_ID_STAGING }} \
62
+ --build-arg MAINNET_CACHE_URL=${{ secrets.MAINNET_CACHE_URL_STAGING }} \
63
+ --build-arg MAILCHIMP_ENDPOINT=${{ secrets.MAILCHIMP_ENDPOINT }} \
64
+ --build-arg MAILCHIMP_API_KEY=${{ secrets.MAILCHIMP_API_KEY }} \
65
+ --build-arg INFURA_PROJECT_ID=${{ secrets.INFURA_PROJECT_ID_STAGING }} \
66
+ --build-arg ETHERSCAN_API_KEY=${{ secrets.ETHERSCAN_API_KEY }} \
67
+ --build-arg BLOCKNATIVE_API_KEY=${{ secrets.BLOCKNATIVE_API_KEY_STAGING }} \
68
+ --build-arg SHOW_BUILD_INFO=1 \
69
+ --build-arg NODE_ENV=production \
70
+ --build-arg NEXT_PUBLIC_SENTRY_ENV=staging \
71
+ --build-arg SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} \
72
+ --build-arg PRODUCT_HUB_KEY=${{ secrets.PRODUCT_HUB_KEY }} \
73
+ --build-arg ONE_INCH_API_KEY=${{ secrets.ONE_INCH_API_KEY_STAGING }} \
74
+ --build-arg ONE_INCH_API_URL=${{ secrets.ONE_INCH_API_URL_STAGING }} \
75
+ --build-arg REFERRAL_SUBGRAPH_URL=${{ secrets.REFERRAL_SUBGRAPH_URL_STAGING }} \
76
+ --build-arg CONFIG_URL=${{ secrets.CONFIG_URL }} \
77
+ --cache-from=$ECR_REGISTRY/$ECR_REPO_NAME:$LATEST_TAG \
109
78
-t $ECR_REGISTRY/$ECR_REPO_NAME:$SHA_TAG \
110
79
-t $ECR_REGISTRY/$ECR_REPO_NAME:$LATEST_TAG \
111
80
-t $ECR_REGISTRY/$ECR_REPO_NAME:$ENVIRONMENT_TAG \
125
94
126
95
- name : Invalidate CloudFront
127
96
run :
128
- AWS_MAX_ATTEMPTS=10 aws cloudfront create-invalidation --distribution-id
129
- ${{ secrets.CF_DIST_ID_STAGING }} --paths "/*"
97
+ AWS_MAX_ATTEMPTS=10 aws cloudfront create-invalidation --distribution-id ${{
98
+ secrets.CF_DIST_ID_STAGING }} --paths "/*"
0 commit comments