Skip to content

Commit 439dbf8

Browse files
Fix CI: download Natural Earth shapefiles directly
The rustmaps repo gitignores the data/ directory, so cloning it doesn't provide the shapefiles. Download them from naciscdn.org directly in each build job. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7427da9 commit 439dbf8

1 file changed

Lines changed: 107 additions & 14 deletions

File tree

.github/workflows/release.yml

Lines changed: 107 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,43 @@ jobs:
1818
- uses: actions/checkout@v4
1919
- uses: dtolnay/rust-toolchain@stable
2020
- uses: Swatinem/rust-cache@v2
21-
- name: Clone rustmaps geodata
21+
- name: Clone rustmaps (for build)
22+
run: git clone --depth 1 https://github.com/FahrenheitResearch/rustmaps.git ../rustmaps
23+
shell: bash
24+
- name: Download Natural Earth shapefiles
25+
shell: bash
2226
run: |
23-
git clone --depth 1 https://github.com/FahrenheitResearch/rustmaps.git $GITHUB_WORKSPACE/../rustmaps
27+
mkdir -p rustmaps_data
28+
cd rustmaps_data
29+
URLS=(
30+
"https://naciscdn.org/naturalearth/110m/physical/ne_110m_coastline.zip"
31+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_coastline.zip"
32+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_coastline.zip"
33+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_land.zip"
34+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_land.zip"
35+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_ocean.zip"
36+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_lakes.zip"
37+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_lakes.zip"
38+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_rivers_lake_centerlines.zip"
39+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_0_boundary_lines_land.zip"
40+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_1_states_provinces_lines.zip"
41+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_populated_places_simple.zip"
42+
"https://naciscdn.org/naturalearth/50m/cultural/ne_50m_urban_areas.zip"
43+
)
44+
for url in "${URLS[@]}"; do
45+
echo "Downloading $url"
46+
curl -sL -O "$url"
47+
done
48+
for f in *.zip; do unzip -o "$f"; done
49+
rm -f *.zip
2450
- name: Build
2551
run: cargo build --release
2652
- name: Package
53+
shell: bash
2754
run: |
2855
mkdir dist
2956
cp target/release/nexview.exe dist/
30-
cp -r $GITHUB_WORKSPACE/../rustmaps/data dist/rustmaps_data
57+
cp -r rustmaps_data dist/rustmaps_data
3158
cd dist && 7z a ../NexView-Windows-x64.zip nexview.exe rustmaps_data
3259
- uses: actions/upload-artifact@v4
3360
with:
@@ -42,16 +69,38 @@ jobs:
4269
with:
4370
targets: x86_64-apple-darwin
4471
- uses: Swatinem/rust-cache@v2
45-
- name: Clone rustmaps geodata
46-
run: git clone --depth 1 https://github.com/FahrenheitResearch/rustmaps.git $GITHUB_WORKSPACE/../rustmaps
72+
- name: Clone rustmaps (for build)
73+
run: git clone --depth 1 https://github.com/FahrenheitResearch/rustmaps.git ../rustmaps
74+
- name: Download Natural Earth shapefiles
75+
run: |
76+
mkdir -p rustmaps_data && cd rustmaps_data
77+
for url in \
78+
"https://naciscdn.org/naturalearth/110m/physical/ne_110m_coastline.zip" \
79+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_coastline.zip" \
80+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_coastline.zip" \
81+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_land.zip" \
82+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_land.zip" \
83+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_ocean.zip" \
84+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_lakes.zip" \
85+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_lakes.zip" \
86+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_rivers_lake_centerlines.zip" \
87+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_0_boundary_lines_land.zip" \
88+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_1_states_provinces_lines.zip" \
89+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_populated_places_simple.zip" \
90+
"https://naciscdn.org/naturalearth/50m/cultural/ne_50m_urban_areas.zip"; do
91+
echo "Downloading $url"
92+
curl -sL -O "$url"
93+
done
94+
for f in *.zip; do unzip -o "$f"; done
95+
rm -f *.zip
4796
- name: Build
4897
run: cargo build --release --target x86_64-apple-darwin
4998
- name: Create App Bundle
5099
run: |
51100
mkdir -p "NexView.app/Contents/MacOS"
52101
mkdir -p "NexView.app/Contents/Resources"
53102
cp target/x86_64-apple-darwin/release/nexview "NexView.app/Contents/MacOS/"
54-
cp -r $GITHUB_WORKSPACE/../rustmaps/data "NexView.app/Contents/Resources/rustmaps_data"
103+
cp -r rustmaps_data "NexView.app/Contents/Resources/rustmaps_data"
55104
cat > "NexView.app/Contents/Info.plist" << 'PLIST'
56105
<?xml version="1.0" encoding="UTF-8"?>
57106
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -94,16 +143,38 @@ jobs:
94143
- uses: actions/checkout@v4
95144
- uses: dtolnay/rust-toolchain@stable
96145
- uses: Swatinem/rust-cache@v2
97-
- name: Clone rustmaps geodata
98-
run: git clone --depth 1 https://github.com/FahrenheitResearch/rustmaps.git $GITHUB_WORKSPACE/../rustmaps
146+
- name: Clone rustmaps (for build)
147+
run: git clone --depth 1 https://github.com/FahrenheitResearch/rustmaps.git ../rustmaps
148+
- name: Download Natural Earth shapefiles
149+
run: |
150+
mkdir -p rustmaps_data && cd rustmaps_data
151+
for url in \
152+
"https://naciscdn.org/naturalearth/110m/physical/ne_110m_coastline.zip" \
153+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_coastline.zip" \
154+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_coastline.zip" \
155+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_land.zip" \
156+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_land.zip" \
157+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_ocean.zip" \
158+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_lakes.zip" \
159+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_lakes.zip" \
160+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_rivers_lake_centerlines.zip" \
161+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_0_boundary_lines_land.zip" \
162+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_1_states_provinces_lines.zip" \
163+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_populated_places_simple.zip" \
164+
"https://naciscdn.org/naturalearth/50m/cultural/ne_50m_urban_areas.zip"; do
165+
echo "Downloading $url"
166+
curl -sL -O "$url"
167+
done
168+
for f in *.zip; do unzip -o "$f"; done
169+
rm -f *.zip
99170
- name: Build
100171
run: cargo build --release
101172
- name: Create App Bundle
102173
run: |
103174
mkdir -p "NexView.app/Contents/MacOS"
104175
mkdir -p "NexView.app/Contents/Resources"
105176
cp target/release/nexview "NexView.app/Contents/MacOS/"
106-
cp -r $GITHUB_WORKSPACE/../rustmaps/data "NexView.app/Contents/Resources/rustmaps_data"
177+
cp -r rustmaps_data "NexView.app/Contents/Resources/rustmaps_data"
107178
cat > "NexView.app/Contents/Info.plist" << 'PLIST'
108179
<?xml version="1.0" encoding="UTF-8"?>
109180
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -150,15 +221,37 @@ jobs:
150221
run: |
151222
sudo apt-get update
152223
sudo apt-get install -y libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev
153-
- name: Clone rustmaps geodata
154-
run: git clone --depth 1 https://github.com/FahrenheitResearch/rustmaps.git $GITHUB_WORKSPACE/../rustmaps
224+
- name: Clone rustmaps (for build)
225+
run: git clone --depth 1 https://github.com/FahrenheitResearch/rustmaps.git ../rustmaps
226+
- name: Download Natural Earth shapefiles
227+
run: |
228+
mkdir -p rustmaps_data && cd rustmaps_data
229+
for url in \
230+
"https://naciscdn.org/naturalearth/110m/physical/ne_110m_coastline.zip" \
231+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_coastline.zip" \
232+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_coastline.zip" \
233+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_land.zip" \
234+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_land.zip" \
235+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_ocean.zip" \
236+
"https://naciscdn.org/naturalearth/50m/physical/ne_50m_lakes.zip" \
237+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_lakes.zip" \
238+
"https://naciscdn.org/naturalearth/10m/physical/ne_10m_rivers_lake_centerlines.zip" \
239+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_0_boundary_lines_land.zip" \
240+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_admin_1_states_provinces_lines.zip" \
241+
"https://naciscdn.org/naturalearth/10m/cultural/ne_10m_populated_places_simple.zip" \
242+
"https://naciscdn.org/naturalearth/50m/cultural/ne_50m_urban_areas.zip"; do
243+
echo "Downloading $url"
244+
curl -sL -O "$url"
245+
done
246+
for f in *.zip; do unzip -o "$f"; done
247+
rm -f *.zip
155248
- name: Build
156249
run: cargo build --release
157250
- name: Package
158251
run: |
159252
mkdir dist
160253
cp target/release/nexview dist/
161-
cp -r $GITHUB_WORKSPACE/../rustmaps/data dist/rustmaps_data
254+
cp -r rustmaps_data dist/rustmaps_data
162255
cd dist && tar czf ../NexView-Linux-x64.tar.gz nexview rustmaps_data
163256
- uses: actions/upload-artifact@v4
164257
with:
@@ -184,8 +277,8 @@ jobs:
184277
- **GPU rendering defaults to off** — CPU+Rayon is faster
185278
186279
### Changes
187-
- Bundled basemap (rustmaps) — no internet needed for map tiles
188-
- All downloads include map data, just extract and run
280+
- Bundled basemap — no internet needed for map tiles, just extract and run
281+
- All downloads include map data
189282
190283
### macOS Users
191284
If you see a Gatekeeper warning, right-click the app and select "Open", or run:

0 commit comments

Comments
 (0)