-
Notifications
You must be signed in to change notification settings - Fork 5
78 lines (66 loc) · 1.95 KB
/
build_and_deploy_DTM_frontend.yml
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
name: Build and Deploy Drone Tasking Manager Frontend
on:
push:
branches:
- main
paths:
- src/frontend/**
workflow_dispatch:
permissions:
id-token: write
contents: read
env:
AWS_REGION: ap-south-1
S3_BUCKET: dronetm
jobs:
build:
name: Build JavaScript assets
runs-on: ubuntu-latest
environment:
name: ${{ github.ref_name }}
steps:
- name: Clone repository
uses: actions/checkout@v3
with:
ref: ${{ github.ref_name }}
- name: Use Node.js 19.x
uses: actions/setup-node@v1
with:
node-version: 19.x
- name: Install yarn
working-directory: ./src/frontend/
run: npm install -g yarn
- name: Cache node_modules
uses: actions/cache@v2
with:
path: ./src/frontend/node_modules
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Write Environment Variables
id: write_env
working-directory: ./src/frontend/
run: |
echo ${{ vars.FRONTEND_ENV_VARS }} > .env
- name: Install dependencies
working-directory: ./src/frontend/
run: yarn
- name: Generate build
working-directory: ./src/frontend/
run: |
yarn build
- name: Setup AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
audience: sts.amazonaws.com
aws-region: ${{ env.AWS_REGION }}
role-session-name: GH-Actions-${{ github.run_id }}-${{ github.run_attempt }}
role-to-assume: ${{ secrets.AWS_OIDC_ROLE_ARN }}
- name: Copy Static Files to S3
working-directory: ./src/frontend/
run: |
pwd
ls -alh
aws s3 cp --recursive ./dist/* s3://dronetm/