Skip to content

license: switch to All Rights Reserved — Source-Visible #2

license: switch to All Rights Reserved — Source-Visible

license: switch to All Rights Reserved — Source-Visible #2

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
dashboard:
name: Dashboard · Next build
runs-on: ubuntu-latest
timeout-minutes: 8
defaults:
run:
working-directory: dashboard
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: dashboard/package-lock.json
- name: Install
run: npm ci
- name: Build
# Provide harmless placeholders so the dashboard's supabase client
# initialiser doesn't throw at module-load during the build pass.
env:
NEXT_PUBLIC_SUPABASE_URL: https://example.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY: placeholder-anon-key
run: npm run build
scraper:
name: Scraper · syntax + import check
runs-on: ubuntu-latest
timeout-minutes: 5
defaults:
run:
working-directory: scraper
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: scraper/package-lock.json
- name: Install
run: npm ci
- name: Parse-check every source file
# `node --check` doesn't follow imports, so for ESM we Just-Import
# each file. Any unresolved import or syntax error blows up here.
env:
NEXT_PUBLIC_SUPABASE_URL: https://example.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY: placeholder-anon-key
run: |
for f in src/*.js; do
echo "→ checking $f"
node --input-type=module -e "import('./$f').then(() => process.exit(0)).catch((e) => { console.error(e); process.exit(1); })" || exit 1
done