-
Notifications
You must be signed in to change notification settings - Fork 0
80 lines (69 loc) · 2.94 KB
/
Copy pathdeploy-basic-example.yml
File metadata and controls
80 lines (69 loc) · 2.94 KB
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
name: Deploy basic example
# Deploys examples/basic to Firebase Hosting.
#
# Required repository secrets:
# FIREBASE_SERVICE_ACCOUNT - JSON key of a service account for the
# `mapconductor` Firebase project with the
# "Firebase Hosting Admin" role
# VITE_GOOGLE_MAPS_API_KEY - Google Maps JavaScript API key
# VITE_ARCGIS_API_KEY - ArcGIS Location Platform API key
# VITE_MAPBOX_ACCESS_TOKEN - Mapbox access token
# VITE_HERE_API_KEY - HERE platform API key
# The VITE_* values are embedded into the static bundle at build time.
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
concurrency:
group: deploy-basic-example
cancel-in-progress: false
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
submodules: recursive
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
# The @mapconductor/* packages are not published to npm yet. They live in
# this repo as git submodules (checked out above) and are wired up as npm
# workspaces. Their package.json files pin each other to exact versions,
# so once any package is version-bumped npm can no longer satisfy those
# specs from the local workspaces and falls back to the registry, which
# 404s. Normalize every internal spec to "*" so npm always links the
# local submodule instead of downloading it.
- name: Link local workspace packages
run: node scripts/link-local-workspaces.mjs
# `npm install` (not `npm ci`): the link step above rewrites package.json
# files at build time, so the committed lockfile is intentionally not kept
# in exact sync and `npm ci` would fail the integrity check.
- name: Install dependencies
run: npm install --no-audit --no-fund
- name: Build basic example
run: npm run build
env:
VITE_BASE_PATH: /
VITE_GOOGLE_MAPS_API_KEY: ${{ secrets.VITE_GOOGLE_MAPS_API_KEY }}
VITE_ARCGIS_API_KEY: ${{ secrets.VITE_ARCGIS_API_KEY }}
VITE_MAPBOX_ACCESS_TOKEN: ${{ secrets.VITE_MAPBOX_ACCESS_TOKEN }}
VITE_HERE_API_KEY: ${{ secrets.VITE_HERE_API_KEY }}
VITE_MAPKIT_TOKEN: ${{ secrets.VITE_MAPKIT_TOKEN }}
VITE_AZURE_MAPS_SUBSCRIOTION_KEY: ${{ secrets.VITE_AZURE_MAPS_SUBSCRIOTION_KEY }}
VITE_TOMTOM_API_KEY: ${{ secrets.VITE_TOMTOM_API_KEY }}
VITE_MAPTILER: ${{ secrets.VITE_MAPTILER }}
VITE_LONGDO: ${{ secrets.VITE_LONGDO }}
- name: Deploy to Firebase Hosting
uses: FirebaseExtended/action-hosting-deploy@v0
with:
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
projectId: mapconductor
channelId: live
entryPoint: examples/basic