-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (126 loc) · 4.41 KB
/
nextjs.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
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
name: Deploy Next.js site to Pages
on:
push:
branches: ['main']
pull_request:
branches: ['main']
workflow_dispatch:
permissions:
contents: write
pages: write
id-token: write
pull-requests: write
concurrency:
group: 'pages'
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: 'recursive'
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Restore cache
id: cache-dependencies
uses: actions/cache@v3
with:
path: |
/home/runner/work/reactgeoda/csds_kepler
/home/runner/work/reactgeoda/loaders.gl
key: ${{ runner.os }}-csds_kepler-${{ hashFiles('deps.txt') }}
- name: Install Kepler.gl
if: steps.cache-dependencies.outputs.cache-hit != 'true'
run: |
npm install -g npm
npm install -g yarn
npm install -g node-gyp
cd ..
pwd
git clone https://github.com/GeoDaCenter/kepler.gl.git --branch=xli/reactgeoda csds_kepler
cd csds_kepler
yarn
cd ..
- name: Install GeoDa-Lib
run: |
cd ..
git clone https://oauth2:${{ secrets.GEODA_LIB_TOKEN }}@github.com/GeoDaCenter/geoda-lib.git geoda-lib
- name: Install ai-assistant
run: |
cd ..
git clone https://oauth2:${{ secrets.OLEANDERAI_TOKEN }}@github.com/oleanderai/ai-assistant.git ai-assistant
cd ai-assistant
yarn
cd ..
- name: Install loaders.gl
if: steps.cache-dependencies.outputs.cache-hit != 'true'
run: |
cd ..
git clone https://github.com/visgl/loaders.gl.git --branch=xli/geoarrow-fix-in-mem-table loaders.gl
cd loaders.gl
PUPPETEER_SKIP_DOWNLOAD=true yarn
cd ..
- name: Run Lint and Test
run: |
cd geoda-ai
yarn
yarn lint
yarn test
# - name: Create Sentry Release
# uses: getsentry/action-release@v1
# env:
# SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
# SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
# SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
- name: Get Head Commit Message
id: get_head_commit_message
run: echo "HEAD_COMMIT_MESSAGE=$(git show -s --format=%s)" >> $GITHUB_ENV
- name: Build geoda-ai with Sentry
id: build-with-sentry
if: ${{ contains(env.HEAD_COMMIT_MESSAGE, '[Sentry]') || github.ref == 'refs/heads/main' }}
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
NEXT_PUBLIC_MAPBOX_TOKEN: ${{ secrets.MAPBOX_TOKEN }}
NODE_OPTIONS: '--max_old_space_size=4096'
run: |
cd geoda-ai
yarn build-local-with-sentry
- name: Build geoda-ai without Sentry
id: build-without-sentry
if: ${{ !contains(env.HEAD_COMMIT_MESSAGE, '[Sentry]') && github.ref != 'refs/heads/main' }}
run: |
cd geoda-ai
yarn build-local
- name: Deploy Preview to Netlify
id: deploy
# deploy when push to main or when commit message contains [Preview]
if: contains(env.HEAD_COMMIT_MESSAGE, '[Preview]')
uses: mathiasvr/[email protected]
with:
run: |
cd geoda-ai
netlify deploy --dir=out --site ${{ secrets.NETLIFY_SITE_ID }} --auth ${{ secrets.NETLIFY_AUTH_TOKEN }} --alias draft-${{ github.event.number }} | grep -o 'https://[^ ]*'
- name: Comment PR
if: contains(env.HEAD_COMMIT_MESSAGE, '[Preview]')
uses: thollander/actions-comment-pull-request@v2
with:
message: |
:rocket: Deploy preview available at: ${{ steps.deploy.outputs.stdout }}
- name: Deploy Production to Netlify
if: github.ref == 'refs/heads/main'
run: |
cd geoda-ai
netlify deploy --prod --dir=out --site ${{ secrets.NETLIFY_SITE_ID }} --auth ${{ secrets.NETLIFY_AUTH_TOKEN }}
# - name: Build Library
# run: |
# cd library
# export NODE_OPTIONS=--openssl-legacy-provider
# yarn
# yarn build