Comandos
Comandos de build, ejemplos, tests, codegen y calidad en un solo lugar.
5 min de lectura
Tu app
Estos steps provienen de templates/minimal-app/build.zig de la plantilla. El step app solo se registra para destinos macOS.
zig build # build the executable
zig build run # build and run
zig build app # package a macOS .app bundle (zig-out/)
zig build -Dtest-mode=true # enable the automation harness (forwarded to zenit)Ejemplos del repo de zenit
Cada ejemplo tiene dos steps: zig build <name> genera un .app con firma ad-hoc, y zig build run-<name> ejecuta el binario directamente.
StepNombre del .appQué es
hello-buttonHello ButtonVentana mínima con botóncounter-reactiveReactive CounterDemo de Signal / Memo / Effectvirtual-list-perf100k Virtual ListPrueba de estrés de VirtualList con 100k filastext-inputText Input DemoInput / Textarea con text_coremulti-windowMulti WindowDos ventanas nativas, enrutamiento por ventanastorybookzenit StorybookShowcase de todos los componentes y objetivo e2edevtools-probeDevTools ProbeValidación en ventana real del panel de rendimiento de DevToolsinterop-probezenit Interop ProbeVerificación a nivel de sistema del portapapeles enriquecido / arrastrar hacia fueraconsole-probeConsole ProbeVerificación en ventana real de Console + DevToolsdesign-probeDesign ProbeObjetivo para comparar con maquetas de diseñozig build run-hello-button
zig build run-counter-reactive
zig build run-storybookTests
Suites
ComandoQué hace
testAlias de test-headlesstest-headlessTests deterministas; no requieren un dispositivo Metal realtest-allTests deterministas más tests de Metal en dispositivo realtest-null-backendCompila y ejecuta los tests deterministas con el backend GPU Null para validar la abstracción RHIUI y reactividad
ComandoQué hace
test-uiTests del sistema de UI; -Dtest-filter=<substring> ejecuta solo los nombres que coincidentest-ui-coreTests de integración de ui_core (src/ui/core/tests.zig)test-reactiveTests del sistema reactivotest-allocation-campaignRecorre puntos de fallo del asignador en los límites transaccionales del frameworkRenderizado y GPU
ComandoQué hace
test-renderTests del módulo rendertest-gpuTests de la abstracción GPUtest-metalTests que requieren un dispositivo Metal realtest-svgTests del parser / rasterizador SVGtest-timing-ringTests del anillo de tiempos de frameTexto e i18n
ComandoQué hace
test-textTests del módulo text (catálogo de fuentes / pesos)test-text-coreTests del módulo text_coretest-text-propertiesTests de propiedades de coordenadas de texto, deterministas y con semillatest-i18nTests del módulo i18ntest-bidi-conformanceDatos completos de conformidad UAX #9 de Unicode 17.0.0Plataforma, ventanas y empaquetado
ComandoQué hace
test-window-lifecycleTests deterministas de ciclo de vida y enrutamiento multiventanatest-text-hook-ownersPila de propiedad del hook de medición de texto a nivel de proceso (cerrar una ventana conserva los hooks de las demás)test-selector-scalePropagación de escala de FontSelector en HiDPItest-system-sdkTests de System SDKtest-system-sdk-backendsTests deterministas de backends nativoscheck-system-sdk-crossCompila los tests de System SDK para Linux / Windows (sin ejecutarlos)test-harnessTests de test_harness (file-RPC)test-package-consumerCompila y lanza una app downstream con paquetes directos y filtrados por ZigCodegen y herramientas
ComandoQué hace
benchLíneas base de rendimiento: zig build bench [-- filter] [-- json=path]gen-iconsRegenera el módulo elegido con -Dicon-set (lucide por defecto)gen-icons-lucideRegenera el módulo público de iconos Lucidegen-icons-commonRegenera el módulo de iconos common, independiente del providergen-icons-untitled / gen-icons-allSet de iconos interno; solo en checkouts internosgen-component-indexEscanea el AST de src/ui y regenera component_index_generated.zigcapability-matrixImprime la matriz de capacidades de macOS generadatext-corpus-dumpImprime el corpus T0 de coordenadas de texto versionadoOpciones de build
OpciónPor defectoEfecto
-Dtest-mode=truefalseActiva el harness e2e (servidor file-RPC)-De2e-port=<n>19816Puerto E2E, usado en el nombre del directorio RPC por defecto-Dtest-filter=<s>—Ejecuta solo los tests de test-ui cuyo nombre contiene la subcadena-Dicon-set=<name>lucideProvider de iconos integrado: lucide o untitled (solo interno)-Dgpu-backend=<name>metalBackend GPU: metal o nullNOTE
Scripts de calidad
ScriptQué comprueba
./scripts/check_oss_boundary.shRevisa estáticamente los imports de src/ui y luego compila hello-button para confirmar que ningún módulo prohibido es alcanzable./scripts/check_style_literals.shHace que los literales sueltos de color / tamaño de fuente en los ejemplos solo disminuyan, nunca aumenten (se permiten escapes con ui.arb)bash scripts/switch_icon_set.sh lucideEjecuta test-headless y el build de storybook con un set de iconos, sin tocar el worktreeTIP
Comprobación del bundle
Los bundles de ejemplo se firman ad hoc y se les quita el atributo de cuarentena. Estos comandos verifican la firma y listan los atributos extendidos que queden.
zig build hello-button
codesign --verify --deep --strict "zig-out/Hello Button.app"
xattr -lr "zig-out/Hello Button.app"