wilayah 0.6.1

Location lookup for Indonesian villages by GPS coordinates or name
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

env:
  CARGO_TERM_COLOR: always

jobs:
  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: rustfmt
      - run: cargo fmt --check --all

  check:
    needs: fmt
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - feature-flags: "--no-default-features"
            test-flags: "--lib"
          - feature-flags: "--features raw-sqlite"
            test-flags: ""
          - feature-flags: "--features build-db"
            test-flags: ""
    steps:
      - uses: actions/checkout@v6
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: clippy

      - name: Restore cargo cache
        uses: actions/cache@v5
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-cargo-${{ matrix.feature-flags }}-${{ hashFiles('Cargo.toml') }}
          restore-keys: ${{ runner.os }}-cargo-${{ matrix.feature-flags }}-

      - name: Restore pre-built database cache
        if: contains(matrix.feature-flags, 'db')
        uses: actions/cache@v5
        with:
          path: data/locations.db
          key: ${{ runner.os }}-db-${{ hashFiles('src/builder/mod.rs', 'src/db/', 'Cargo.toml') }}

      - name: Run clippy
        run: cargo clippy ${{ matrix.feature-flags }} -- -D warnings
      - name: Run tests
        run: cargo test ${{ matrix.feature-flags }} ${{ matrix.test-flags }}
      - name: Check examples
        if: contains(matrix.feature-flags, 'build-db')
        run: cargo check --example build_db --features build-db