Skip to content

fix/update_cicd

fix/update_cicd #103

Workflow file for this run

name: CI
on:
push:
pull_request:
concurrency:
group: frontend-ci-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
jobs:
test:
name: Jest on Node 24
runs-on: ubuntu-latest
env:
CI: "1"
EXPO_TUNNEL: "false"
EXPO_DEVTOOLS_LISTEN_ADDRESS: 0.0.0.0
EXPO_PUBLIC_API_BASE: http://localhost:8000
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Use Node 24
uses: actions/setup-node@v5
with:
node-version: 24
cache: npm
cache-dependency-path: frontend/app/package-lock.json
- name: Install deps
working-directory: frontend/app
run: npm ci
- name: Type check (skip if no TS)
if: hashFiles('frontend/app/tsconfig.json') != ''
working-directory: frontend/app
run: |
npx --yes typescript@latest -v >/dev/null 2>&1 || true
npx tsc --noEmit || (echo "::warning::Type check failed"; exit 1)
- name: Run Jest with coverage (CI mode)
working-directory: frontend/app
run: npm test -- --ci --runInBand --coverage --verbose
web-export-smoke:
name: Expo web export (smoke)
needs: test
runs-on: ubuntu-latest
env:
CI: "1"
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Use Node 24
uses: actions/setup-node@v5
with:
node-version: 24
cache: npm
cache-dependency-path: frontend/app/package-lock.json
- name: Install deps
working-directory: frontend/app
run: npm ci
- name: Build (expo export -p web)
working-directory: frontend/app
run: npx expo export -p web --output-dir dist
- name: Verify dist output
working-directory: frontend/app
run: |
test -d dist
test -f dist/index.html