name: nigig-map # CI workflow for the map rendering crate. # # Enforces: # 1. The map crate compiles (lib + tests). # 2. The test suite is green. # 3. No regressions in tile parsing, style compilation, or tessellation. # # This workflow was added to catch runtime errors like: # - 'too many elements (N > 100000)' from overpass_parser # - 'type mismatch for property style_light: expected MapThemeStyle' # - triangulation failures in tile_disk on: push: paths: - 'crates/apps/map/**' - 'Cargo.lock' - 'Cargo.toml' - 'rust-toolchain.toml' - '.forgejo/workflows/nigig-map.yml' pull_request: paths: - 'crates/apps/map/**' - 'Cargo.lock' - 'Cargo.toml' - 'rust-toolchain.toml' - '.forgejo/workflows/nigig-map.yml' jobs: test: runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@v4 - name: Install Rust toolchain uses: actions/setup-rust@v1 with: toolchain: stable components: rustfmt, clippy - name: Cache cargo registry uses: actions/cache@v3 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-map-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-map- - name: Check formatting run: cargo fmt --manifest-path crates/apps/map/Cargo.toml -- --check - name: Build map crate run: cargo build --manifest-path crates/apps/map/Cargo.toml - name: Run map tests run: cargo test --manifest-path crates/apps/map/Cargo.toml - name: Clippy map crate run: cargo clippy --manifest-path crates/apps/map/Cargo.toml -- -D warnings