Commandes
Les commandes de build, d'exemples, de tests, de codegen et de qualité, réunies en un seul endroit.
5 min de lecture
Votre application
Ces steps proviennent du fichier templates/minimal-app/build.zig du modèle. Le step app n’est enregistré que pour les cibles 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)Exemples du dépôt zenit
Chaque exemple a deux steps : zig build <name> produit un .app signé ad hoc, et zig build run-<name> lance directement l’exécutable.
StepNom du .appDescription
hello-buttonHello ButtonFenêtre minimale et boutoncounter-reactiveReactive CounterDémo Signal / Memo / Effectvirtual-list-perf100k Virtual ListTest de charge VirtualList à 100k lignestext-inputText Input DemoInput / Textarea avec text_coremulti-windowMulti WindowDeux fenêtres natives, routage par fenêtrestorybookzenit StorybookVitrine de tous les composants et cible e2edevtools-probeDevTools ProbeRecette en fenêtre réelle du panneau de performances DevToolsinterop-probezenit Interop ProbeVérification système du presse-papiers riche / glisser vers l'extérieurconsole-probeConsole ProbeVérification en fenêtre réelle de Console + DevToolsdesign-probeDesign ProbeCible de comparaison avec les maquetteszig build run-hello-button
zig build run-counter-reactive
zig build run-storybookTests
Suites
CommandeRôle
testAlias de test-headlesstest-headlessTests déterministes ; aucun appareil Metal réel requistest-allTests déterministes plus tests Metal sur appareil réeltest-null-backendCompile et exécute les tests déterministes sur le backend GPU Null pour valider l'abstraction RHIUI et réactivité
CommandeRôle
test-uiTests du système UI ; -Dtest-filter=<substring> n'exécute que les noms correspondantstest-ui-coreTests d'intégration ui_core (src/ui/core/tests.zig)test-reactiveTests du système réactiftest-allocation-campaignBalaye les points d'échec d'allocation aux frontières transactionnelles du frameworkRendu et GPU
CommandeRôle
test-renderTests du module rendertest-gpuTests de l'abstraction GPUtest-metalTests nécessitant un appareil Metal réeltest-svgTests du parseur / rastériseur SVGtest-timing-ringTests de l'anneau de timing des framesTexte et i18n
CommandeRôle
test-textTests du module text (catalogue de polices / graisses)test-text-coreTests du module text_coretest-text-propertiesTests de propriétés des coordonnées de texte, déterministes et paramétrables par grainetest-i18nTests du module i18ntest-bidi-conformanceDonnées de conformité UAX #9 complètes d'Unicode 17.0.0Plateforme, fenêtres et packaging
CommandeRôle
test-window-lifecycleTests déterministes du cycle de vie et du routage multifenêtretest-text-hook-ownersPile de propriété du hook de mesure de texte à l'échelle du processus (fermer une fenêtre conserve les hooks des autres)test-selector-scalePropagation de l'échelle FontSelector en HiDPItest-system-sdkTests System SDKtest-system-sdk-backendsTests déterministes des backends natifscheck-system-sdk-crossCompile les tests System SDK pour Linux / Windows (sans exécution)test-harnessTests de test_harness (file-RPC)test-package-consumerCompile et lance une application en aval avec des paquets directs et filtrés par ZigCodegen et outils
CommandeRôle
benchRéférences de performance : zig build bench [-- filter] [-- json=path]gen-iconsRégénère le module choisi par -Dicon-set (lucide par défaut)gen-icons-lucideRégénère le module public d'icônes Lucidegen-icons-commonRégénère le module d'icônes common, indépendant du providergen-icons-untitled / gen-icons-allJeu d'icônes interne ; checkouts internes uniquementgen-component-indexAnalyse l'AST de src/ui et régénère component_index_generated.zigcapability-matrixAffiche la matrice de capacités macOS généréetext-corpus-dumpAffiche le corpus T0 de coordonnées de texte versionnéOptions de build
OptionDéfautEffet
-Dtest-mode=truefalseActive le harness e2e (serveur file-RPC)-De2e-port=<n>19816Port E2E, utilisé dans le nom du répertoire RPC par défaut-Dtest-filter=<s>—N'exécute que les tests test-ui dont le nom contient la sous-chaîne-Dicon-set=<name>lucideProvider d'icônes intégré : lucide ou untitled (interne uniquement)-Dgpu-backend=<name>metalBackend GPU : metal ou nullNOTE
Scripts qualité
ScriptCe qu'il vérifie
./scripts/check_oss_boundary.shVérifie statiquement les imports de src/ui, puis compile hello-button pour confirmer qu'aucun module interdit n'est atteignable./scripts/check_style_literals.shFait baisser, jamais monter, le nombre de littéraux bruts de couleur / taille de police dans les exemples (les échappements ui.arb sont permis)bash scripts/switch_icon_set.sh lucideLance test-headless et le build storybook avec un jeu d'icônes, sans toucher au worktreeTIP
Vérification du bundle
Les bundles d’exemple sont signés ad hoc et leur attribut quarantine est supprimé. Ces commandes vérifient la signature et listent les attributs étendus restants.
zig build hello-button
codesign --verify --deep --strict "zig-out/Hello Button.app"
xattr -lr "zig-out/Hello Button.app"