-
Notifications
You must be signed in to change notification settings - Fork 2
89 lines (79 loc) · 2.82 KB
/
web-app-demo-build-deploy.yaml
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
name: Build and deploy demo web app
on:
pull_request:
branches:
- master
- develop
paths:
- "src/**"
workflow_dispatch:
inputs:
buildManually:
description: 'Run build manually'
required: true
default: 'build'
jobs:
build-and-deploy:
runs-on: ubuntu-latest
environment: dev
env:
ALBUM_APP_TITLE: ${{ vars.ALBUM_APP_TITLE }}
STATIC_FILES_URL: ${{ vars.STATIC_FILES_URL }}
IMAGEKIT_CDN_URL: ${{ vars.IMAGEKIT_CDN_URL }}
MAPBOX_API_KEY: ${{ secrets.MAPBOX_API_KEY }}
AWS_API_GATEWAY_URL: ${{ vars.AWS_API_GATEWAY_URL }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_FOR_GITHUB_DEPLOY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_GITHUB_DEPLOY }}
MAP_CENTRE_LNG: ${{ vars.MAP_CENTRE_LNG }}
MAP_CENTRE_LAT: ${{ vars.MAP_CENTRE_LAT }}
steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Write .env file
run: |
tee .env <<EOF
ALBUM_APP_TITLE=$ALBUM_APP_TITLE
STATIC_FILES_URL=$STATIC_FILES_URL
IMAGEKIT_CDN_URL=$IMAGEKIT_CDN_URL
MAPBOX_API_KEY=$MAPBOX_API_KEY
AWS_API_GATEWAY_URL=$AWS_API_GATEWAY_URL
GOOGLE_CLIENT_ID=DEMO_GOOGLE_CLIENT_ID
MAP_CENTRE_LNG=$MAP_CENTRE_LNG
MAP_CENTRE_LAT=$MAP_CENTRE_LAT
EOF
- name: Test and build
run: |
npm run types
npm run test
npm run build
- name: Clean up old files
uses: keithweaver/aws-s3-github-action@master
with:
command: rm
source: s3://${{ vars.AWS_S3_BUCKET_NAME }}/assets/
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_FOR_GITHUB_DEPLOY }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_GITHUB_DEPLOY }}
aws_region: us-east-1
flags: --recursive
- name: Upload to S3
uses: keithweaver/aws-s3-github-action@master
with:
source: dist/spa
destination: s3://${{ vars.AWS_S3_BUCKET_NAME }}
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID_FOR_GITHUB_DEPLOY }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_GITHUB_DEPLOY }}
aws_region: us-east-1
flags: --recursive
- name: Invalidate CloudFront
uses: chetan/invalidate-cloudfront-action@master
env:
DISTRIBUTION: ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }}
PATHS: /
AWS_REGION: us-east-1
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_FOR_GITHUB_DEPLOY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_GITHUB_DEPLOY }}