From f50012b3cdb9c87dca5197dc5e71dbbdd403c06f Mon Sep 17 00:00:00 2001 From: Masashi Katsumata Date: Wed, 28 Oct 2026 14:31:50 -0700 Subject: [PATCH] Run Test and API surface for develop; drop the Firebase deploy Both workflows ran only for pull requests to main, so develop could break unseen; it had (stale lockfile, unbuilt dependencies, icon packs outside the workspaces), fixed in #29. They now also run for pull requests to develop, and Test for pushes to it. The basic example is no longer deployed to Firebase Hosting, so its workflow and firebase.json / .firebaserc go. --- .github/workflows/api-surface.yml | 1 + .github/workflows/dependency-submission.yml | 2 +- .github/workflows/deploy-basic-example.yml | 92 --------------------- .github/workflows/test.yml | 2 + examples/basic/.firebaserc | 5 -- examples/basic/firebase.json | 45 ---------- 6 files changed, 4 insertions(+), 143 deletions(-) delete mode 100644 .github/workflows/deploy-basic-example.yml delete mode 100644 examples/basic/.firebaserc delete mode 100644 examples/basic/firebase.json diff --git a/.github/workflows/api-surface.yml b/.github/workflows/api-surface.yml index eec3156..bb0665b 100644 --- a/.github/workflows/api-surface.yml +++ b/.github/workflows/api-surface.yml @@ -15,6 +15,7 @@ on: types: [opened, reopened, synchronize, ready_for_review] branches: - main + - develop workflow_dispatch: inputs: packages: diff --git a/.github/workflows/dependency-submission.yml b/.github/workflows/dependency-submission.yml index 0a0fd4c..dcfad2d 100644 --- a/.github/workflows/dependency-submission.yml +++ b/.github/workflows/dependency-submission.yml @@ -44,7 +44,7 @@ jobs: with: node-version: 22 - # @mapconductor/* はまだ npm に無い。deploy-basic-example.yml と同じく、内部の依存指定を + # @mapconductor/* はまだ npm に無い。内部の依存指定を # "*" に揃えてローカルの workspace をリンクさせる(揃えないと registry を見に行って 404)。 - name: Link local workspace packages run: node scripts/link-local-workspaces.mjs diff --git a/.github/workflows/deploy-basic-example.yml b/.github/workflows/deploy-basic-example.yml deleted file mode 100644 index 933f5f2..0000000 --- a/.github/workflows/deploy-basic-example.yml +++ /dev/null @@ -1,92 +0,0 @@ -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 -# VITE_MAPKIT_TOKEN - Apple MapKit JS JWT -# VITE_AZURE_MAPS_SUBSCRIOTION_KEY - Azure Maps subscription key (typo is the -# committed spelling; examples/basic reads -# this exact name) -# VITE_TOMTOM_API_KEY - TomTom Maps SDK key -# VITE_MAPTILER - MapTiler Cloud key -# VITE_LONGDO - Longdo Map key -# VITE_MAPPLS_API_KEY - Mappls (MapmyIndia) REST/Map SDK key -# -# The list must stay in sync with examples/basic/.env; a missing entry does not -# fail the build, it just ships a bundle where that one provider is blank. -# 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 }} - VITE_MAPPLS_API_KEY: ${{ secrets.VITE_MAPPLS_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 - diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 53034c1..43f98db 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,9 +15,11 @@ on: types: [opened, reopened, synchronize, ready_for_review] branches: - main + - develop push: branches: - main + - develop workflow_dispatch: concurrency: diff --git a/examples/basic/.firebaserc b/examples/basic/.firebaserc deleted file mode 100644 index 1422fb5..0000000 --- a/examples/basic/.firebaserc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "projects": { - "default": "mapconductor" - } -} diff --git a/examples/basic/firebase.json b/examples/basic/firebase.json deleted file mode 100644 index be1a81f..0000000 --- a/examples/basic/firebase.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "hosting": { - "site": "mapconductor-react", - "public": "dist", - "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], - "cleanUrls": true, - "rewrites": [ - { - "regex": "^/(?:camera-sync|hello-map)(?:/(?:en|ja|es-419|de|th|hi))?/?$", - "destination": "/index.html" - }, - { - "regex": "^/[a-z0-9-]+/[a-z0-9-]+(?:/(?:en|ja|es-419|de|th|hi))?/?$", - "destination": "/index.html" - } - ], - "headers": [ - { - "source": "/assets/**", - "headers": [ - { "key": "Cache-Control", "value": "public, max-age=31536000, immutable" } - ] - }, - { - "source": "/cesiumStatic/**", - "headers": [ - { "key": "Cache-Control", "value": "public, max-age=86400" } - ] - }, - { - "source": "**/index.html", - "headers": [ - { "key": "Cache-Control", "value": "no-cache" } - ] - }, - { - "source": "/tile-sw.js", - "headers": [ - { "key": "Cache-Control", "value": "no-cache" }, - { "key": "Service-Worker-Allowed", "value": "/" } - ] - } - ] - } -}