Vite + TypeScript PWA that mirrors the Android app's core features: - Pre-processed shelter data (build-time UTM33N→WGS84 conversion) - Leaflet map with shelter markers, user location, and offline tiles - Canvas compass arrow (ported from DirectionArrowView.kt) - IndexedDB shelter cache with 7-day staleness check - Service worker with CacheFirst tiles and precached app shell - i18n for en, nb, nn (ported from Android strings.xml) - iOS/Android compass handling with low-pass filter - Respects user map interaction (no auto-snap on pan/zoom) - Build revision cache-breaker for reliable SW updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
47 lines
No EOL
1.1 KiB
YAML
47 lines
No EOL
1.1 KiB
YAML
name: CI
|
|
on:
|
|
pull_request: ~
|
|
push:
|
|
branches:
|
|
- main
|
|
jobs:
|
|
run:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up Node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 22
|
|
check-latest: true
|
|
|
|
- name: Cache dependencies
|
|
id: cache-dependencies
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: node_modules
|
|
key: ${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
|
|
|
|
- name: Install dependencies
|
|
if: steps.cache-dependencies.outputs.cache-hit != 'true'
|
|
run: npm ci
|
|
|
|
- name: Make sure puppeteer installs chrome, when using npm cache
|
|
if: steps.cache-dependencies.outputs.cache-hit == 'true'
|
|
run: npx puppeteer browsers install
|
|
|
|
- name: Build project
|
|
run: npm run build
|
|
|
|
- name: lint
|
|
run: npm run lint
|
|
|
|
- name: test
|
|
run: npm run testci
|
|
|
|
- name: Upload coverage reports to Codecov
|
|
uses: codecov/codecov-action@v4.0.1
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }} |