7
7
push :
8
8
branches :
9
9
- main
10
- - ' forestgeo-app-*'
11
10
workflow_dispatch :
12
11
13
12
jobs :
14
- build-app-development :
15
- if : startsWith(github.ref, 'refs/heads/forestgeo-app-')
16
- runs-on : ubuntu-latest
17
- environment : development
18
-
19
- steps :
20
- - uses : actions/checkout@v4
21
-
22
- - name : Set up Node.js version
23
- uses : actions/setup-node@v3
24
- with :
25
- node-version : ' 18.x'
26
-
27
- - name : create env file (in frontend/ directory) -- development
28
- id : create-env-file-dev
29
- run : |
30
- touch frontend/.env
31
- echo AZURE_AD_CLIENT_SECRET=${{ secrets.AZURE_AD_CLIENT_SECRET }} >> frontend/.env
32
- echo AZURE_AD_CLIENT_ID=${{ secrets.AZURE_AD_CLIENT_ID }} >> frontend/.env
33
- echo AZURE_AD_TENANT_ID=${{ secrets.AZURE_AD_TENANT_ID }} >> frontend/.env
34
- echo NEXTAUTH_SECRET=${{ secrets.NEXTAUTH_SECRET }} >> frontend/.env
35
- echo NEXTAUTH_URL=${{ secrets.NEXTAUTH_URL }} >> frontend/.env
36
- echo AZURE_SQL_USER=${{ secrets.AZURE_SQL_USER }} >> frontend/.env
37
- echo AZURE_SQL_PASSWORD=${{ secrets.AZURE_SQL_PASSWORD }} >> frontend/.env
38
- echo AZURE_SQL_SERVER=${{ secrets.AZURE_SQL_SERVER }} >> frontend/.env
39
- echo AZURE_SQL_DATABASE=${{ secrets.AZURE_SQL_DATABASE }} >> frontend/.env
40
- echo AZURE_SQL_PORT=${{ secrets.AZURE_SQL_PORT }} >> frontend/.env
41
- echo AZURE_STORAGE_SAS_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_SAS_CONNECTION_STRING }} >> frontend/.env
42
- echo AZURE_SQL_SCHEMA=${{ secrets.AZURE_SQL_SCHEMA }} >> frontend/.env
43
- echo AZURE_SQL_CATALOG_SCHEMA=${{ secrets.AZURE_SQL_CATALOG_SCHEMA }} >> frontend/.env
44
- echo AZURE_STORAGE_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_CONNECTION_STRING }} >> frontend/.env
45
- echo NEXTAUTH_DEBUG=true >> frontend/.env
46
- echo NODE_ENV=development >> frontend/.env
47
- echo PORT=3000 >> frontend/.env
48
- echo FG_PAT=${{ secrets.FG_PAT }} >> frontend/.env
49
- echo OWNER=${{ secrets.OWNER }} >> frontend/.env
50
- echo REPO=${{ secrets.REPO }} >> frontend/.env
51
-
52
- - name : Cache node modules
53
- uses : actions/cache@v2
54
- with :
55
- path : frontend/node_modules
56
- key : ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
57
- restore-keys : |
58
- ${{ runner.os }}-node-
59
-
60
- - name : Cache Next.js build
61
- uses : actions/cache@v2
62
- with :
63
- path : frontend/.next/cache
64
- key : ${{ runner.os }}-next-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/.next/cache') }}
65
- restore-keys : |
66
- ${{ runner.os }}-next-
67
- ${{ runner.os }}-next-${{ hashFiles('**/package-lock.json') }}
68
-
69
- - name : move into frontend --> npm install, build, and test
70
- run : |
71
- cd frontend/
72
- npm install
73
- npm run build
74
- npm run test --if-present
75
-
76
- - name : Move directories into build/standalone to reduce app load
77
- run : |
78
- mv ./frontend/build/static ./frontend/build/standalone/build
79
- mv ./frontend/public ./frontend/build/standalone
80
-
81
- - name : Upload build artifact
82
- uses : actions/upload-artifact@v4
83
- with :
84
- name : app-build
85
- path : frontend/build/standalone
86
-
87
13
build-app-production :
88
14
if : github.ref == 'refs/heads/main'
89
15
runs-on : ubuntu-latest
105
31
echo AZURE_AD_CLIENT_ID=${{ secrets.AZURE_AD_CLIENT_ID }} >> frontend/.env
106
32
echo AZURE_AD_TENANT_ID=${{ secrets.AZURE_AD_TENANT_ID }} >> frontend/.env
107
33
echo NEXTAUTH_SECRET=${{ secrets.NEXTAUTH_SECRET }} >> frontend/.env
108
- echo NEXTAUTH_URL=${{ secrets.NEXTAUTH_URL }} >> frontend/.env
109
34
echo AZURE_SQL_USER=${{ secrets.AZURE_SQL_USER }} >> frontend/.env
110
35
echo AZURE_SQL_PASSWORD=${{ secrets.AZURE_SQL_PASSWORD }} >> frontend/.env
111
36
echo AZURE_SQL_SERVER=${{ secrets.AZURE_SQL_SERVER }} >> frontend/.env
@@ -122,32 +47,6 @@ jobs:
122
47
echo OWNER=${{ secrets.OWNER }} >> frontend/.env
123
48
echo REPO=${{ secrets.REPO }} >> frontend/.env
124
49
125
- - name : create env file (in frontend/ directory) -- development
126
- id : create-env-file-dev
127
- if : startsWith(github.ref, 'refs/heads/forestgeo-app-')
128
- run : |
129
- touch frontend/.env
130
- echo AZURE_AD_CLIENT_SECRET=${{ secrets.AZURE_AD_CLIENT_SECRET }} >> frontend/.env
131
- echo AZURE_AD_CLIENT_ID=${{ secrets.AZURE_AD_CLIENT_ID }} >> frontend/.env
132
- echo AZURE_AD_TENANT_ID=${{ secrets.AZURE_AD_TENANT_ID }} >> frontend/.env
133
- echo NEXTAUTH_SECRET=${{ secrets.NEXTAUTH_SECRET }} >> frontend/.env
134
- echo NEXTAUTH_URL=${{ secrets.NEXTAUTH_URL }} >> frontend/.env
135
- echo AZURE_SQL_USER=${{ secrets.AZURE_SQL_USER }} >> frontend/.env
136
- echo AZURE_SQL_PASSWORD=${{ secrets.AZURE_SQL_PASSWORD }} >> frontend/.env
137
- echo AZURE_SQL_SERVER=${{ secrets.AZURE_SQL_SERVER }} >> frontend/.env
138
- echo AZURE_SQL_DATABASE=${{ secrets.AZURE_SQL_DATABASE }} >> frontend/.env
139
- echo AZURE_SQL_PORT=${{ secrets.AZURE_SQL_PORT }} >> frontend/.env
140
- echo AZURE_STORAGE_SAS_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_SAS_CONNECTION_STRING }} >> frontend/.env
141
- echo AZURE_SQL_SCHEMA=${{ secrets.AZURE_SQL_SCHEMA }} >> frontend/.env
142
- echo AZURE_SQL_CATALOG_SCHEMA=${{ secrets.AZURE_SQL_CATALOG_SCHEMA }} >> frontend/.env
143
- echo AZURE_STORAGE_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_CONNECTION_STRING }} >> frontend/.env
144
- echo NEXTAUTH_DEBUG=true >> frontend/.env
145
- echo NODE_ENV=development >> frontend/.env
146
- echo PORT=3000 >> frontend/.env
147
- echo FG_PAT=${{ secrets.FG_PAT }} >> frontend/.env
148
- echo OWNER=${{ secrets.OWNER }} >> frontend/.env
149
- echo REPO=${{ secrets.REPO }} >> frontend/.env
150
-
151
50
- name : Cache node modules
152
51
uses : actions/cache@v2
153
52
with :
@@ -203,26 +102,4 @@ jobs:
203
102
app-name : ' forestgeo-livesite'
204
103
slot-name : ' Production'
205
104
publish-profile : ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_PRODUCTION }}
206
- package : ./frontend/build/standalone
207
-
208
- deploy-app-development :
209
- needs : build-app-development
210
- runs-on : ubuntu-latest
211
- environment : development
212
-
213
- steps :
214
- - name : Download build artifact
215
- uses : actions/download-artifact@v4
216
- with :
217
- name : app-build
218
- path : frontend/build/standalone
219
-
220
- - name : ' Deploy to Azure Web App (development)'
221
- id : deploy-to-webapp-dev
222
- if : startsWith(github.ref, 'refs/heads/forestgeo-app-')
223
- uses : azure/webapps-deploy@v2
224
- with :
225
- app-name : ' forestgeo-livesite'
226
- slot-name : ' development'
227
- publish-profile : ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_DEVELOPMENT }}
228
- package : ./frontend/build/standalone
105
+ package : frontend/build/standalone
0 commit comments