SPB Git

spb/earth-now Public License

earth-now.co — real-time planetary dashboard: live world metrics modeled, not streamed.

TypeScript 93% Shell 2.3% SQL 1.4% JavaScript 1.3% Dockerfile 1.2% CSS 0.8%

Add CI workflow (header lint + typecheck + tests + build) and license

GitHub Actions on push/PR: mandatory author-header lint, strict
typecheck across all packages, full 142-test suite, build with the
widget 15 KB gzip gate. README gains the dynamic CI badge and a
License section. LICENSE: all rights reserved, source-available;
third-party data stays under each source's own license.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed yesterday (Aug 9, 2026) parent b94b6e3

Showing 3 changed files with +70 and −0

added .github/workflows/ci.yml +48 −0
@@ -0,0 +1,48 @@
1 +# earth-now.co
2 +# Author: Simon-Pierre Boucher
3 +# Contact: contact@spboucher.ai
4 +# File: .github/workflows/ci.yml
5 +# Purpose: CI — mandatory header lint, strict typecheck, full test suite and build (incl. widget size gate) on every push/PR
6 +
7 +name: CI
8 +
9 +on:
10 + push:
11 + branches: [main]
12 + pull_request:
13 +
14 +concurrency:
15 + group: ci-${{ github.ref }}
16 + cancel-in-progress: true
17 +
18 +jobs:
19 + ci:
20 + runs-on: ubuntu-latest
21 + timeout-minutes: 20
22 + env:
23 + ENABLE_RT_POLLERS: "0"
24 + steps:
25 + - uses: actions/checkout@v4
26 +
27 + - uses: pnpm/action-setup@v4
28 + # version is read from package.json "packageManager"
29 +
30 + - uses: actions/setup-node@v4
31 + with:
32 + node-version: 20
33 + cache: pnpm
34 +
35 + - name: Install
36 + run: pnpm install --frozen-lockfile
37 +
38 + - name: Header lint (mandatory author header on every source file)
39 + run: npx tsx scripts/check-headers.ts
40 +
41 + - name: Typecheck (strict, all packages)
42 + run: pnpm typecheck
43 +
44 + - name: Tests (golden, property-based, client/server consistency)
45 + run: pnpm test
46 +
47 + - name: Build (apps + widget ≤ 15 KB gzip gate)
48 + run: pnpm build
added LICENSE +17 −0
@@ -0,0 +1,17 @@
1 +Copyright (c) 2026 Simon-Pierre Boucher <contact@spboucher.ai>
2 +
3 +All rights reserved.
4 +
5 +This repository is source-available for reading, evaluation and personal
6 +study. No permission is granted to copy, modify, redistribute, sublicense,
7 +or use this software or its data models, in whole or in part, for any
8 +commercial or production purpose without prior written authorization from
9 +the copyright holder.
10 +
11 +Third-party data displayed by earth-now.co remains the property of its
12 +respective sources (UN, NOAA, Global Carbon Project, Copernicus, FAO,
13 +Global Forest Watch, Ember/IEA, USGS, and others), each under its own
14 +license as documented in packages/registry/metrics/ and on the public
15 +methodology page.
16 +
17 +For licensing inquiries: contact@spboucher.ai
modified README.md +5 −0
@@ -2,6 +2,7 @@
2 2
3 3 <p align="center">
4 4 <a href="https://www.earth-now.co"><img src="https://img.shields.io/badge/live-www.earth--now.co-2a78d6?style=flat-square" alt="Live site"></a>
5 + <a href="https://github.com/spboucher-ai/earth-now/actions/workflows/ci.yml"><img src="https://github.com/spboucher-ai/earth-now/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
5 6 <img src="https://img.shields.io/badge/metrics-76-1baf7a?style=flat-square" alt="76 metrics">
6 7 <img src="https://img.shields.io/badge/tests-142%20passing-0ca30c?style=flat-square" alt="142 tests">
7 8 <img src="https://img.shields.io/badge/TypeScript-strict-2a78d6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript strict">
@@ -134,6 +135,10 @@ Production is exposed at **https://www.earth-now.co** (reverse proxy → Next.js
134 135
135 136 Every source file in this repository carries the mandatory author header (enforced by `scripts/check-headers.ts` in CI). Data sources are credited in the UI, in API responses and on the methodology page — licenses are tracked per source in the registry, with `licenseNote` flags on anything requiring legal review before commercial launch.
136 137
138 +## 📄 License
139 +
140 +**All rights reserved** — this repository is source-available for reading and evaluation; commercial or production use requires written authorization (see [`LICENSE`](./LICENSE)). Third-party data remains under each source's own license, documented per metric in the registry.
141 +
137 142 ---
138 143
139 144 <p align="center"><em>Chaque compteur est un modèle statistique documenté — jamais une extrapolation opaque.</em></p>
140 145