release acceptance matrix: tools/acceptance.ts runs every user-facing command from the packed npm tarball (npx --package=<tgz> on Node 20 / 22, bun x --bun after bun add <tgz>) in fresh temp folders with a fresh HOME, real piped stdin (n, EOF) and per-cell fake stores over HTTP (STOREBOUND_STORE_MOCK, loopback only); a cell passes only with the expected exit code and no crash text; report -> markdown matrix. Prompts go through stdinIsTTY (STOREBOUND_ASSUME_TTY drives them with piped stdin), STOREBOUND_DESKTOP_APP=none for the install prompt on a machine with the app. release.yml: required acceptance job matrix (Linux + Windows x node20/node22/bun) and report, the matrix attached to the release; ci.yml: the quick subset on Linux and Windows. Scan fixtures for React Native and Expo
This commit is contained in:
parent
ae681e3ecd
commit
f58e192001
26 changed files with 926 additions and 15 deletions
|
|
@ -15,6 +15,7 @@ import { ascClient } from './asc';
|
|||
|
||||
export { AGE_RATING_NONE } from '../lib/store-catalogs';
|
||||
import { AGE_RATING_NONE } from '../lib/store-catalogs';
|
||||
import { stdinIsTTY } from '../lib/tty';
|
||||
|
||||
const CATEGORY_RELS = ['primaryCategory', 'primarySubcategoryOne', 'primarySubcategoryTwo', 'secondaryCategory'] as const;
|
||||
const str = (v: unknown): string => (v === null || v === undefined ? '' : String(v));
|
||||
|
|
@ -75,7 +76,7 @@ export async function run(ctx: Ctx): Promise<void> {
|
|||
else for (const line of appInfoPlanLines(p)) console.log(line);
|
||||
if (dry) { done('apple', `dry run: ${p.changes ? `${p.changes} change(s)` : 'nothing to change'}; read-only, nothing written`); return; }
|
||||
if (!p.changes) { done('apple', 'appinfo already up to date (App Privacy is UI-only: store-declarations skill)'); return; }
|
||||
if (process.stdin.isTTY && !(await confirm(ctx, `Apply these ${p.changes} change(s) to App Store Connect?`))) { warn('apple', 'nothing written'); return; }
|
||||
if (stdinIsTTY() && !(await confirm(ctx, `Apply these ${p.changes} change(s) to App Store Connect?`))) { warn('apple', 'nothing written'); return; }
|
||||
const changed = (key: string) => p.items.some(i => i.key === key && i.action !== 'same');
|
||||
|
||||
if (info.categories && changed('categories')) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue