feat: add ArcGIS provider to reactnative-basic example and refactor p… #28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} | |
| - name: Deploy to Firebase Hosting | |
| uses: FirebaseExtended/action-hosting-deploy@v0 | |
| with: | |
| firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }} | |
| projectId: mapconductor | |
| channelId: live | |
| entryPoint: examples/basic |