月次の郵便番号 JSON データセット生成 ETL。GitHub Actions のみで動作し、Cloudflare Pages (
jpzip.nadai.dev) へデプロイする。
Protocol Spec: jpzip/spec
| モード | 説明 |
|---|---|
| 通常 (GitHub Actions) | 日本郵便から ZIP を取得 → 正規化 → JSON 出力 → 前回ビルドと比較 |
| ローカル (fixture) | -ken-fixture と -rome-fixture でローカル CSV を入力にして動作確認 |
# 月次ジョブ相当
go run ./cmd/build -o dist/
# 初回ビルドはバリデーション無し
go run ./cmd/build -o dist/ -skip-validate
# テストデータで一通り流す
go run ./cmd/build \
-ken-fixture testdata/ken_all_sample.csv \
-rome-fixture testdata/rome_sample.csv \
-o /tmp/jpzip-dist \
-skip-validate出力レイアウト:
dist/
├── all.json
├── meta.json
├── g/
│ ├── 0.json … 9.json
└── p/
└── 001.json … 999.json (実在 prefix のみ)
詳細は jpzip-workspace の docs/jpzip-etl-design.md を参照。要点:
- 言語 Go、実行環境は GitHub Actions のみ
- スケジュール 毎月 1 日と 15 日 (JST 03:00)
- 未知の町域パターンは
normalize.ErrUnknownPatternでフェイル → 自動 Issue - バリデーション閾値: 全件 ±5%、prefix 数 ±5%、都道府県別件数 ±10%
go test ./...| Secret | 用途 |
|---|---|
CLOUDFLARE_API_TOKEN |
Pages デプロイ用 (Pages:Edit のみ) |
CLOUDFLARE_ACCOUNT_ID |
Cloudflare アカウント識別 |
- コード: MIT
- 配信されるデータ: 元データは日本郵便 (Public Domain 相当)、正規化結果も Public Domain として扱う