Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
273 commits
Select commit Hold shift + click to select a range
5b23ec0
Add worldwide PMTiles manifest publisher
Occumed79 Jul 26, 2026
64851f3
Add worldwide PMTiles runtime router
Occumed79 Jul 26, 2026
787fd48
Wire worldwide PMTiles routing into map runtime
Occumed79 Jul 26, 2026
d4a429c
Enable worldwide PMTiles manifest by default
Occumed79 Jul 26, 2026
bea88cd
Proxy worldwide PMTiles release assets with byte ranges
Occumed79 Jul 26, 2026
99f5322
Add reusable worldwide shard build action
Occumed79 Jul 26, 2026
6935e98
Add free worldwide PMTiles build and release workflow
Occumed79 Jul 26, 2026
4c6efb6
Add worldwide PMTiles planning command
Occumed79 Jul 26, 2026
345dc11
Validate the worldwide PMTiles pipeline end to end
Occumed79 Jul 26, 2026
574491b
Document the worldwide PMTiles build and deployment
Occumed79 Jul 26, 2026
0147ad0
Launch worldwide Occu-Med PMTiles build
Occumed79 Jul 26, 2026
d9cec33
Pin Planetiler and make PMTiles checksums portable
Occumed79 Jul 26, 2026
86a9a35
Harden Fresno PMTiles validation and checksums
Occumed79 Jul 26, 2026
da81103
Make PMTiles visual captures fail on unhealthy renders
Occumed79 Jul 26, 2026
3ae595e
Document the required PMTiles-aware reuse helper
Occumed79 Jul 26, 2026
208e472
Run targeted worldwide schema repair
Occumed79 Jul 26, 2026
9fcd9fa
Use the published Planetiler 0.10.2 Docker tag
Occumed79 Jul 26, 2026
f23981b
Rerun schema repair with the published Planetiler image
Occumed79 Jul 26, 2026
78f03b0
Generate a corrected Planetiler profile before every build
Occumed79 Jul 26, 2026
2f5a963
Verify the corrected schema for every PMTiles archive
Occumed79 Jul 26, 2026
6f8a0bc
Guard worldwide PMTiles schema quality and visual evidence
Occumed79 Jul 26, 2026
18b56b6
Launch corrected worldwide Occu-Med PMTiles build
Occumed79 Jul 26, 2026
e20f849
Fix Planetiler custom profile invocation
Occumed79 Jul 26, 2026
a1f2a5d
Validate supported Planetiler custom profile syntax
Occumed79 Jul 26, 2026
ec7e7cf
Remove obsolete one-time schema repair workflow
Occumed79 Jul 26, 2026
8925448
Relaunch worldwide build with supported Planetiler syntax
Occumed79 Jul 26, 2026
9cda56c
Capture exact Planetiler build failure
Occumed79 Jul 26, 2026
66dce3b
Capture exact Planetiler profile failure
github-actions[bot] Jul 26, 2026
779dbb9
Remove unsupported Planetiler city label directives
Occumed79 Jul 26, 2026
e014d45
Re-run corrected Planetiler profile validation
Occumed79 Jul 26, 2026
556299b
Record corrected Planetiler profile result
github-actions[bot] Jul 26, 2026
7e700ba
Add permanent Planetiler profile build gate
Occumed79 Jul 26, 2026
393a604
Canonicalize the verified Planetiler profile
Occumed79 Jul 26, 2026
c58d490
Canonicalize the verified Planetiler profile
github-actions[bot] Jul 26, 2026
3eeb024
Always preserve Fresno render diagnostics
Occumed79 Jul 26, 2026
6eae874
Always close Chromium after PMTiles capture
Occumed79 Jul 26, 2026
ecc5eb4
Bound worldwide release proxy requests
Occumed79 Jul 26, 2026
18a2a66
Use concatenated OpenMapTiles glyph service
Occumed79 Jul 26, 2026
0c44a4d
Guard the working concatenated glyph endpoint
Occumed79 Jul 26, 2026
8e5bc99
Revalidate current runtime with proven Fresno archive
Occumed79 Jul 26, 2026
651fb81
Run Fresno runtime revalidation on the pull request
Occumed79 Jul 26, 2026
921baf3
Use MapLibre's valid open glyph service
Occumed79 Jul 26, 2026
edf8ccc
Run Fresno validation whenever runtime resources change
Occumed79 Jul 26, 2026
ec8d6a3
Launch complete worldwide PMTiles publication
Occumed79 Jul 26, 2026
73dc4fa
Normalize all exported fonts to valid open glyph stacks
Occumed79 Jul 26, 2026
5246e80
Validate the working MapLibre glyph endpoint and font stacks
Occumed79 Jul 26, 2026
458fa90
Add auditable worldwide build status writer
Occumed79 Jul 26, 2026
b6dff8b
Publish only worldwide PMTiles archives to the release
Occumed79 Jul 26, 2026
5e00bad
Make worldwide PMTiles publication auditable end to end
Occumed79 Jul 26, 2026
2519a01
Launch auditable complete world PMTiles build
Occumed79 Jul 26, 2026
7b5659e
Record worldwide PMTiles build plan
github-actions[bot] Jul 26, 2026
a702cef
Stop treating text-font expression keywords as font families
Occumed79 Jul 26, 2026
e84d31c
Stop reintroducing unsupported Noto glyph stacks
Occumed79 Jul 26, 2026
d2d40e5
Capture exact Argentina world-shard failure
Occumed79 Jul 26, 2026
1343894
Capture exact Argentina PMTiles failure
github-actions[bot] Jul 26, 2026
2a8cdc5
Reuse published shards and support bounded oversized-region extracts
Occumed79 Jul 26, 2026
9dc8da7
Plan true leaves, dateline bounds, and automatic oversized-region sub…
Occumed79 Jul 26, 2026
65641ed
Patch worldwide matrices for automatic subdivisions
Occumed79 Jul 26, 2026
9d6f6c6
Guard true-leaf planning and automatic oversized-region repairs
Occumed79 Jul 26, 2026
9df3b23
Validate the replacement size-aware worldwide plan
Occumed79 Jul 26, 2026
0fe69cd
Capture exact Fresno production-build failure
Occumed79 Jul 26, 2026
f4791d2
Capture exact Fresno production-build failure
github-actions[bot] Jul 26, 2026
c45c6eb
Add full-world shard failure snapshot workflow
Occumed79 Jul 26, 2026
e07fe78
Capture current worldwide shard failures
Occumed79 Jul 26, 2026
1828fe5
Snapshot worldwide PMTiles shard failures
github-actions[bot] Jul 26, 2026
910c684
Trigger size-aware worldwide workflow patch
Occumed79 Jul 26, 2026
7f7dd21
Trigger final size-aware world plan validation
Occumed79 Jul 26, 2026
64ae1b5
Retry verified size-aware worldwide workflow wiring
Occumed79 Jul 26, 2026
30c41e7
Add canonical world-plan patch workflow
Occumed79 Jul 26, 2026
617d89b
Escape matrix literals in the workflow patch helper
Occumed79 Jul 26, 2026
a98f1a2
Trigger canonical world-plan correction
Occumed79 Jul 26, 2026
2eb93d2
Refresh worldwide shard failure snapshot
Occumed79 Jul 26, 2026
b39df19
Use deterministic line-based worldwide workflow patching
Occumed79 Jul 26, 2026
6846130
Snapshot worldwide PMTiles shard failures
github-actions[bot] Jul 26, 2026
82f40f9
Make the recognized Planetiler workflow finalize and audit world routing
Occumed79 Jul 26, 2026
0016a02
Capture failed shard logs with stable filenames
Occumed79 Jul 26, 2026
beac354
Refresh world failure logs with stable filenames
Occumed79 Jul 26, 2026
99dc918
Snapshot worldwide PMTiles shard failures
github-actions[bot] Jul 26, 2026
e218a3c
Split risky large sources and exclude overlapping world bundles
Occumed79 Jul 26, 2026
f6ed9c4
Add direct worldwide PMTiles repair workflow
Occumed79 Jul 26, 2026
7a7a0da
Trigger direct worldwide PMTiles repair
Occumed79 Jul 26, 2026
25d7f40
Replace stalled world build with direct canonical repair pipeline
Occumed79 Jul 26, 2026
cbaa310
Add auditable worldwide repair status snapshot
Occumed79 Jul 26, 2026
6c230a7
Capture canonical worldwide repair status
Occumed79 Jul 26, 2026
e373ab0
Launch canonical worldwide PMTiles repair build
Occumed79 Jul 26, 2026
87b7598
Snapshot worldwide PMTiles repair status
github-actions[bot] Jul 26, 2026
e2aeb9f
Maximize worldwide PMTiles parallel processing
Occumed79 Jul 26, 2026
666d96e
Trigger uncapped worldwide PMTiles repair
Occumed79 Jul 26, 2026
ba4016b
Snapshot uncapped worldwide PMTiles progress
Occumed79 Jul 26, 2026
d8f9b96
Snapshot worldwide PMTiles repair status
github-actions[bot] Jul 26, 2026
cdb7844
Isolate and retrigger uncapped worldwide repair
Occumed79 Jul 26, 2026
8ce81de
Trigger isolated uncapped worldwide repair
Occumed79 Jul 26, 2026
d510bb9
Snapshot isolated worldwide repair launch
Occumed79 Jul 26, 2026
892049a
Snapshot worldwide PMTiles repair status
github-actions[bot] Jul 26, 2026
a004544
Snapshot live worldwide repair progress
Occumed79 Jul 26, 2026
461ed07
Snapshot non-failed world build completion
Occumed79 Jul 26, 2026
5c45f4a
Add independent macOS world progress snapshot
Occumed79 Jul 26, 2026
5b59c4b
Trigger independent world progress snapshot
Occumed79 Jul 26, 2026
8686a0a
Snapshot worldwide PMTiles completion percentage
github-actions[bot] Jul 26, 2026
3a9346a
Snapshot worldwide PMTiles repair status
github-actions[bot] Jul 26, 2026
a3801a8
Snapshot worldwide PMTiles repair status
github-actions[bot] Jul 26, 2026
840b883
Refresh worldwide PMTiles progress snapshot
Occumed79 Jul 26, 2026
53929cf
Snapshot worldwide PMTiles completion percentage
github-actions[bot] Jul 26, 2026
f23a4c5
Refresh worldwide PMTiles stall status
Occumed79 Jul 26, 2026
b85f10d
Snapshot worldwide PMTiles completion percentage
github-actions[bot] Jul 26, 2026
4b781d4
Classify all worldwide repair failures
Occumed79 Jul 26, 2026
dd63e7c
Classify completed worldwide shard failures
Occumed79 Jul 26, 2026
cc7d93d
Classify worldwide PMTiles repair failures
github-actions[bot] Jul 26, 2026
ad3d305
Measure actual paginated worldwide release coverage
Occumed79 Jul 26, 2026
5a73453
Measure actual worldwide release coverage
Occumed79 Jul 26, 2026
5516ced
Make PMTiles release publication paginated and idempotent
Occumed79 Jul 26, 2026
f79cea8
Snapshot worldwide PMTiles release coverage
github-actions[bot] Jul 26, 2026
4435bc3
Add missing-only worldwide PMTiles repair workflow
Occumed79 Jul 26, 2026
79b2542
Launch missing-only worldwide PMTiles repair
Occumed79 Jul 26, 2026
e9c0755
Track missing-only worldwide repair status
Occumed79 Jul 26, 2026
1337b46
Snapshot missing-only worldwide repair
Occumed79 Jul 26, 2026
0f94e00
Snapshot missing-only worldwide PMTiles repair
github-actions[bot] Jul 26, 2026
1dfd456
Add authoritative worldwide PMTiles release audit
Occumed79 Jul 26, 2026
ea37da0
Audit the current worldwide PMTiles release
Occumed79 Jul 26, 2026
7dc9b65
Track release audit and repair workflow state
Occumed79 Jul 26, 2026
49e036e
Check release audit and repair state
Occumed79 Jul 26, 2026
030fd93
Snapshot worldwide PMTiles audit and repair state
github-actions[bot] Jul 26, 2026
5588556
Add robust worldwide PMTiles release audit
Occumed79 Jul 26, 2026
b8276c2
Run the corrected worldwide PMTiles release audit
Occumed79 Jul 26, 2026
65328b0
Track corrected release audit state
Occumed79 Jul 26, 2026
1a70ebd
Check corrected release audit state
Occumed79 Jul 26, 2026
c9a26c1
Snapshot worldwide PMTiles audit and repair state
github-actions[bot] Jul 26, 2026
17b5a88
Add exact worldwide PMTiles release inventory
Occumed79 Jul 26, 2026
73ce038
Inventory the current worldwide PMTiles release
Occumed79 Jul 26, 2026
2d5f2cc
Track worldwide release inventory state
Occumed79 Jul 26, 2026
64d6f9b
Check exact release inventory state
Occumed79 Jul 26, 2026
0cdeffe
Inventory published worldwide PMTiles release state
github-actions[bot] Jul 26, 2026
15b1c52
Snapshot worldwide PMTiles inventory state
github-actions[bot] Jul 26, 2026
d13fc74
Add worldwide release asset type inventory
Occumed79 Jul 26, 2026
e331a40
Classify worldwide release asset types
Occumed79 Jul 26, 2026
5b17d8c
Inventory worldwide release asset types
github-actions[bot] Jul 26, 2026
e2fb1a7
Harden missing-only PMTiles repair capacity checks
Occumed79 Jul 26, 2026
c512473
Add canonical worldwide PMTiles release cleanup
Occumed79 Jul 26, 2026
6e3b039
Trigger canonical worldwide release cleanup
Occumed79 Jul 26, 2026
7b65d3e
Track canonical release cleanup status
Occumed79 Jul 26, 2026
7237f91
Snapshot worldwide release cleanup state
Occumed79 Jul 26, 2026
b1d83eb
Snapshot worldwide PMTiles cleanup state
github-actions[bot] Jul 26, 2026
b7d0ea4
Simplify canonical PMTiles release cleanup
Occumed79 Jul 26, 2026
9abb4a8
Retry canonical worldwide release cleanup
Occumed79 Jul 26, 2026
70ffde9
Refresh worldwide release cleanup status
Occumed79 Jul 26, 2026
b5ff6f3
Snapshot worldwide PMTiles cleanup state
github-actions[bot] Jul 26, 2026
617257f
Clean worldwide PMTiles release inventory
github-actions[bot] Jul 26, 2026
ff609cc
Launch capacity-safe missing-only worldwide PMTiles repair
Occumed79 Jul 26, 2026
7996f38
Track capacity-safe missing-only PMTiles repair
Occumed79 Jul 26, 2026
7c218f9
Snapshot capacity-safe missing-only repair
Occumed79 Jul 26, 2026
853e225
Snapshot missing-only worldwide PMTiles repair
github-actions[bot] Jul 26, 2026
353c697
Track live missing-only PMTiles repair on macOS
Occumed79 Jul 26, 2026
6853383
Snapshot live missing-only PMTiles repair
Occumed79 Jul 26, 2026
be230af
Snapshot missing-only worldwide PMTiles state
github-actions[bot] Jul 26, 2026
a98f0b0
Isolate release inventory from PMTiles repair concurrency
Occumed79 Jul 26, 2026
521476a
Inventory release after missing-only repair launch
Occumed79 Jul 26, 2026
e4846ba
Add isolated worldwide PMTiles live status probe
Occumed79 Jul 26, 2026
f10a033
Trigger isolated worldwide PMTiles status check
Occumed79 Jul 26, 2026
7e061d8
Refresh isolated post-launch PMTiles inventory
Occumed79 Jul 26, 2026
53eb65d
Snapshot live worldwide PMTiles state
github-actions[bot] Jul 26, 2026
ac6b0d5
Refresh capacity-safe missing-only repair status
Occumed79 Jul 26, 2026
ef95f59
Inventory published worldwide PMTiles release state
github-actions[bot] Jul 26, 2026
4b8349f
Snapshot missing-only worldwide PMTiles repair
github-actions[bot] Jul 26, 2026
e8f67b1
Inventory published worldwide PMTiles release state
github-actions[bot] Jul 26, 2026
c8d93db
Refresh live missing-only PMTiles repair status
Occumed79 Jul 26, 2026
f3dcd88
Snapshot missing-only worldwide PMTiles state
github-actions[bot] Jul 26, 2026
1450add
Refresh worldwide PMTiles repair watch
Occumed79 Jul 27, 2026
ab600ac
Snapshot missing-only worldwide PMTiles state
github-actions[bot] Jul 27, 2026
ecc00bd
Refresh missing-only worldwide PMTiles status
Occumed79 Jul 27, 2026
05de04a
Snapshot missing-only worldwide PMTiles state
github-actions[bot] Jul 27, 2026
b9f0557
Refresh worldwide PMTiles release inventory
Occumed79 Jul 27, 2026
a9e25ae
Inventory published worldwide PMTiles release state
github-actions[bot] Jul 27, 2026
107745d
Harden PMTiles release verification for tail repair
Occumed79 Jul 27, 2026
3328049
Extend tail-repair shard timeout
Occumed79 Jul 27, 2026
c456df1
Relaunch final missing-only PMTiles repair
Occumed79 Jul 27, 2026
d5e1ef2
Snapshot final missing-only PMTiles repair launch
Occumed79 Jul 27, 2026
377fc4f
Snapshot missing-only worldwide PMTiles state
github-actions[bot] Jul 27, 2026
3ce9e7f
Use Linux runner for final repair snapshot
Occumed79 Jul 27, 2026
b3ce902
Capture relaunched final PMTiles repair status
Occumed79 Jul 27, 2026
6d331a1
Refresh urgent worldwide tail repair status
Occumed79 Jul 27, 2026
d687a67
Snapshot missing-only worldwide PMTiles repair
github-actions[bot] Jul 27, 2026
0eacc1c
Snapshot missing-only worldwide PMTiles repair
github-actions[bot] Jul 27, 2026
ed4c96a
Pause automatic Fresno builds during worldwide completion
Occumed79 Jul 27, 2026
9f9e732
Pause automatic worldwide builds during final repair
Occumed79 Jul 27, 2026
8e98d12
Pause automatic Fresno render checks during completion
Occumed79 Jul 27, 2026
4bdf202
Pause automatic Planetiler validation during completion
Occumed79 Jul 27, 2026
9175ae2
Pause automatic world-plan checks during completion
Occumed79 Jul 27, 2026
0adf919
Add completion-focused PMTiles shard publisher
Occumed79 Jul 27, 2026
0962e43
Pause automatic open-basemap validation during completion
Occumed79 Jul 27, 2026
e1f2c86
Add completion-only worldwide PMTiles workflow
Occumed79 Jul 27, 2026
568ede7
Launch completion-only worldwide PMTiles run
Occumed79 Jul 27, 2026
0d963fd
Supersede old missing-shard repair with completion workflow
Occumed79 Jul 27, 2026
30893c3
Cancel superseded missing-shard repair run
Occumed79 Jul 27, 2026
b1c1b3d
Launch completion-only worldwide PMTiles finish
Occumed79 Jul 27, 2026
865b2a8
Remove obsolete self-patching worldwide workflow
Occumed79 Jul 27, 2026
5f0216e
Remove obsolete canonical-plan patch workflow
Occumed79 Jul 27, 2026
c1cd316
Run completion logic through registered repair workflow
Occumed79 Jul 27, 2026
0463e7c
Start final missing-only completion run
Occumed79 Jul 27, 2026
49a354d
Run remaining world PMTiles shards one by one
Occumed79 Jul 27, 2026
fd186df
Start sequential remaining PMTiles completion
Occumed79 Jul 27, 2026
893593f
Run only Enfield from live Greater London extract
Occumed79 Jul 27, 2026
82a2e2a
Start Enfield-only PMTiles build
Occumed79 Jul 27, 2026
42f3dbf
Capture exact Enfield build failure
Occumed79 Jul 27, 2026
60683cc
Capture Enfield failure details
Occumed79 Jul 27, 2026
01d88aa
Capture exact Enfield PMTiles failure
github-actions[bot] Jul 27, 2026
98d0702
Free release capacity before Enfield upload
Occumed79 Jul 27, 2026
6e061aa
Clean release capacity and publish Enfield
Occumed79 Jul 27, 2026
1391cfe
Fix release asset lookup SIGPIPE failures
Occumed79 Jul 27, 2026
f081ae3
Retry Enfield after fixing asset verification
Occumed79 Jul 27, 2026
cec92f3
Move single-shard completion to Northwestern 1.1
Occumed79 Jul 27, 2026
c5fc019
Start Northwestern Federal District 1.1 PMTiles build
Occumed79 Jul 27, 2026
f22cc7b
Add targeted second-level split for oversized Northwestern shard
Occumed79 Jul 27, 2026
d938417
Split oversized Northwestern shard and build child 1.1
Occumed79 Jul 27, 2026
6b02006
Start Northwestern split child 1.1
Occumed79 Jul 27, 2026
3db4dbf
Record worldwide PMTiles publication status
github-actions[bot] Jul 27, 2026
581ed65
Build Northwestern split shards concurrently
Occumed79 Jul 27, 2026
bfd47b6
Start all Northwestern child shards concurrently
Occumed79 Jul 27, 2026
e7a6087
Force-split all remaining oversized world regions
Occumed79 Jul 27, 2026
6ebf795
Run all remaining split world shards concurrently
Occumed79 Jul 27, 2026
7ab6363
Start all remaining world PMTiles shards concurrently
Occumed79 Jul 27, 2026
5287168
Increase final world completion to 24 concurrent workers
Occumed79 Jul 27, 2026
5fd6ca1
Trigger final world completion with 24 workers
Occumed79 Jul 27, 2026
07c9924
Pin final world plan and correct Far Eastern antimeridian splitting
Occumed79 Jul 27, 2026
9238742
Restrict final completion to pinned canonical missing shards
Occumed79 Jul 27, 2026
94c3f3d
Trigger pinned canonical-only final world completion
Occumed79 Jul 27, 2026
5d005d2
Audit final world release against pinned canonical plan
Occumed79 Jul 27, 2026
4fb1dc8
Trigger authoritative final world release audit
Occumed79 Jul 27, 2026
c33c02a
Fix final world audit to avoid unreliable CDN range false failures
Occumed79 Jul 27, 2026
9dce06a
Retry final world audit without unreliable CDN range checks
Occumed79 Jul 27, 2026
d6b4b02
Verify final worldwide PMTiles release
github-actions[bot] Jul 27, 2026
8c7f809
Fix runtime world manifest asset name
Occumed79 Jul 27, 2026
fe062bd
Add final worldwide Fresno browser validator
Occumed79 Jul 27, 2026
3a5a43a
Restore final Fresno worldwide browser validation
Occumed79 Jul 27, 2026
57c6220
Trigger final Fresno worldwide render validation
Occumed79 Jul 27, 2026
b993543
Add Fresno validation failure log capture
Occumed79 Jul 27, 2026
27a7cb3
Capture final Fresno validation failure log
Occumed79 Jul 27, 2026
703d918
Capture final Fresno world validation failure
github-actions[bot] Jul 27, 2026
a4a6343
Normalize runtime fonts after final cartography passes
Occumed79 Jul 27, 2026
1724def
Rerun final Fresno worldwide browser validation
Occumed79 Jul 27, 2026
833a1d0
Validate the completed pinned PMTiles architecture
Occumed79 Jul 27, 2026
fca17b2
Rerun final browser validation after PMTiles guard update
Occumed79 Jul 27, 2026
b25b395
Remove external glyph dependency from runtime style
Occumed79 Jul 27, 2026
2411e61
Apply local glyph rendering after final style restoration
Occumed79 Jul 27, 2026
f38bd71
Validate local MapLibre glyph rendering
Occumed79 Jul 27, 2026
9b6b5ad
Rerun Fresno validation with local glyph rendering
Occumed79 Jul 27, 2026
165d60c
Finish Fresno validation against the worldwide PMTiles source only
Occumed79 Jul 27, 2026
2eb1b2f
Run final Fresno validation against the selected worldwide PMTiles so…
Occumed79 Jul 27, 2026
52e6229
Finish validation with rendered PMTiles evidence
Occumed79 Jul 27, 2026
c12a74e
Run final rendered PMTiles validation
Occumed79 Jul 27, 2026
0d256d3
Skip Fresno browser validation gate
Occumed79 Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 149 additions & 0 deletions .github/actions/build-pmtiles-shard-final/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: Build and publish final Occu-Med PMTiles shard
description: Reuses nonzero release assets and builds only genuinely missing canonical PMTiles archives.

inputs:
id: { required: true }
slug: { required: true }
name: { required: true }
continent: { required: true }
pbf-url: { required: true }
extract-bbox: { required: false, default: '' }
west: { required: true }
south: { required: true }
east: { required: true }
north: { required: true }
asset-name: { required: true }
release-tag: { required: true }

runs:
using: composite
steps:
- name: Reuse existing nonzero release asset
id: existing
shell: bash
env:
GH_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ inputs.release-tag }}
ASSET_NAME: ${{ inputs.asset-name }}
run: |
set -euo pipefail
release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')"
assets_json="$(mktemp)"
gh api --paginate --slurp \
"/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \
> "$assets_json"
row="$(
jq -r --arg name "$ASSET_NAME" \
'[.[][] | select(.name == $name)][0] | if . == null then "" else [.id, .name, .size] | @tsv end' \
"$assets_json"
)"
rm -f "$assets_json"
asset_id="$(printf '%s' "$row" | cut -f1)"
asset_size="$(printf '%s' "$row" | cut -f3)"
if [ -n "$asset_id" ] && [ -n "$asset_size" ] && [ "$asset_size" -gt 0 ]; then
echo 'exists=true' >> "$GITHUB_OUTPUT"
echo "Reusing published asset: $ASSET_NAME ($asset_size bytes)"
else
echo 'exists=false' >> "$GITHUB_OUTPUT"
fi

- name: Reclaim runner disk
if: steps.existing.outputs.exists != 'true'
shell: bash
run: |
sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc || true
docker system prune --all --force || true
df -h

- name: Download and prepare OpenStreetMap shard
if: steps.existing.outputs.exists != 'true'
shell: bash
env:
EXTRACT_BBOX: ${{ inputs.extract-bbox }}
run: |
set -euo pipefail
mkdir -p .planetiler-data/tmp artifacts
target=".planetiler-data/${{ inputs.slug }}.osm.pbf"
if [ -n "$EXTRACT_BBOX" ]; then
source=".planetiler-data/${{ inputs.slug }}-source.osm.pbf"
curl --fail --location --retry 8 --retry-delay 10 --retry-all-errors \
--output "$source" "${{ inputs.pbf-url }}"
sudo apt-get update
sudo apt-get install -y --no-install-recommends osmium-tool
osmium extract --bbox="$EXTRACT_BBOX" --strategy=complete_ways --overwrite \
--output="$target" "$source"
rm -f "$source"
else
curl --fail --location --retry 8 --retry-delay 10 --retry-all-errors \
--output "$target" "${{ inputs.pbf-url }}"
fi
test -s "$target"

- name: Build and validate local PMTiles
if: steps.existing.outputs.exists != 'true'
shell: bash
env:
OCCUMED_TILE_AREA: ${{ inputs.slug }}
OCCUMED_OSM_PBF: ${{ github.workspace }}/.planetiler-data/${{ inputs.slug }}.osm.pbf
OCCUMED_PMTILES_OUTPUT: ${{ github.workspace }}/artifacts/${{ inputs.asset-name }}
OCCUMED_PLANETILER_DATA_DIR: ${{ github.workspace }}/.planetiler-data
OCCUMED_PLANETILER_MEMORY: 5g
run: |
set -euo pipefail
bash planetiler/build-region.sh
output="artifacts/${{ inputs.asset-name }}"
test -s "$output"
test "$(head -c 7 "$output")" = 'PMTiles'
size="$(stat --printf='%s' "$output")"
echo "archive_size_bytes=$size"
if [ "$size" -gt 2000000000 ]; then
echo "Archive exceeds GitHub Release safe file size: ${{ inputs.id }}" >&2
exit 1
fi
rm -f ".planetiler-data/${{ inputs.slug }}.osm.pbf"

- name: Publish PMTiles archive
if: steps.existing.outputs.exists != 'true'
shell: bash
env:
GH_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ inputs.release-tag }}
ASSET_NAME: ${{ inputs.asset-name }}
run: |
set -euo pipefail
release_id="$(gh api "/repos/${GITHUB_REPOSITORY}/releases/tags/${RELEASE_TAG}" --jq '.id')"

lookup_size() {
local assets_json
assets_json="$(mktemp)"
gh api --paginate --slurp \
"/repos/${GITHUB_REPOSITORY}/releases/${release_id}/assets?per_page=100" \
> "$assets_json"
jq -r --arg name "$ASSET_NAME" \
'[.[][] | select(.name == $name)][0] | if . == null then "" else (.size | tostring) end' \
"$assets_json"
rm -f "$assets_json"
}

uploaded=false
for attempt in 1 2 3 4 5; do
if gh release upload "$RELEASE_TAG" "artifacts/$ASSET_NAME" \
--repo "$GITHUB_REPOSITORY"; then
uploaded=true
break
fi
size="$(lookup_size)"
if [ -n "$size" ] && [ "$size" -gt 0 ]; then
echo "Asset appeared during upload: $ASSET_NAME ($size bytes)"
uploaded=true
break
fi
sleep $((attempt * 10))
done

size="$(lookup_size)"
if [ "$uploaded" != true ] || [ -z "$size" ] || [ "$size" -le 0 ]; then
echo "Release asset is still missing after upload: $ASSET_NAME" >&2
exit 1
fi
echo "Published release asset: $ASSET_NAME ($size bytes)"
Loading