45 lines
3.2 KiB
Markdown
45 lines
3.2 KiB
Markdown
CICD-K6: (đang đo — chưa chốt)
|
|
|
|
# cicd-monitor — verify deploy K6 (S167, 2026-08-01)
|
|
|
|
Push range `e202393..1c6d77a` (2 commit: `d82c5a8` wal-flush + `1c6d77a` K6). ĐÚNG 1 file code `fe-admin/src/components/Layout.tsx`. 0-mig · fe-user 0-diff · BE 0-diff.
|
|
Artifact ghi TỪNG MỤC ngay khi có bằng chứng (luật #53: ghi-đĩa-TRONG-lúc-làm; return chỉ là tóm tắt).
|
|
|
|
---
|
|
|
|
## M0 — Mốc PRE (tự đo LIVE lúc run CÒN `running`, KHÔNG tin số chép)
|
|
|
|
Cửa sổ vàng: bắt được #440 ở `running` lúc **11:55:43** ⇒ bundle LIVE lúc đó = PRE thật.
|
|
|
|
| App | index-*.js | index-*.css | size js (B) | Last-Modified js | Content-Type |
|
|
|---|---|---|---|---|---|
|
|
| admin | `index-C2FhHCNT.js` | `index-DqXm5Hpn.css` (86.495) | **1.758.685** | 01 Aug 04:13:05 GMT = **11:13:05 +07** | application/javascript |
|
|
| eoffice | `index-DFOCQ2ks.js` | `index-DlN3yZ5L.css` (92.233) | **1.676.752** | 01 Aug 04:14:05 GMT = **11:14:05 +07** | application/javascript |
|
|
|
|
🔑 **PRE tự chứng là bundle #439 bằng LM, không chỉ bằng hash**: LM 11:13:05 / 11:14:05 nằm TRỌN trong cửa-sổ deploy #439 (11:08:17 → 11:14:33). Trùng baseline đề bài — nhưng trùng đó là KẾT QUẢ ĐO, không phải giả-định đầu vào.
|
|
Content-Type `application/javascript` + ~1,7MB ⇒ không dính bẫy SPA-fallback (`text/html` ~900B). File tải về khớp byte-for-byte `Content-Length` (1.758.685 / 1.676.752).
|
|
|
|
## M0-bis — Chọn byte-marker CÓ RĂNG (verify 0-hit PRE TRƯỚC khi phong)
|
|
|
|
Đề bài cảnh báo đúng: K6 = 12 key literal **đã tồn tại từ K4a** + comment sẽ bị Vite strip ⇒ marker ngây thơ = 0 bit. Đo PRE xác nhận:
|
|
|
|
❌ **LOẠI marker "key đơn lẻ"** — PRE admin đã có sẵn: `PurchaseEvaluations` **4** · `KeHoachKyKet` **1** · `HopDongCung` **1** · `PeWorkflows` **3** ⇒ POST có hit cũng **0 bit**.
|
|
❌ **LOẠI marker tên biến** `ADMIN_HIDDEN_KEYS` — biến module-scope, minifier đổi tên (bài K3 `earlyFinalizeLocked`).
|
|
❌ **LOẠI marker comment** — toàn bộ khối lineage 2-đảo là `//` ⇒ Vite strip.
|
|
|
|
✅ **CHỌN marker HỢP-CHẤT: TRẬT TỰ KỀ NHAU của literal trong `new Set([...])`.** Từng literal thì cũ, nhưng *thứ tự kề nhau* chỉ sinh ra khi Set mới được minify. Đo PRE admin (regex chấp cả `"` lẫn `'`):
|
|
|
|
| # | Marker (adjacency) | PRE admin |
|
|
|---|---|---|
|
|
| A | `PurchaseEvaluations","KeHoachKyKet","Contracts` (3-key) | **0** |
|
|
| B | `PurchaseEvaluations","KeHoachKyKet` | **0** |
|
|
| C | `HopDongCung","Forms` | **0** |
|
|
| D | `Workflows","PeWorkflows` | **0** |
|
|
|
|
- **control-DƯƠNG cùng file/cùng pipeline grep:** `/purchase-evaluations` = **68**, `/khkk/list` = **13**, `/suppliers` = **16** ⇒ 0-hit ở A-D là ĐO THẬT, không phải grep chết.
|
|
- **control-ÂM:** chuỗi bịa `ZZZ_NOT_EXIST_MARKER` = **0**.
|
|
|
|
✅ **Marker ÂM (K6 là DISPLAY-ONLY, không phải gỡ route):** 3 chuỗi route trên PHẢI CÒN trong bundle admin POST. Nếu chúng tụt về 0 thì K6 đã cắt nhầm sang lớp route/quyền.
|
|
✅ **Differential:** eoffice = FROZEN kỳ vọng (fe-user 0-diff) ⇒ A-D phải **0** ở eoffice cả PRE lẫn POST.
|
|
|