Kontrakty wyniku budowania
Zakres weryfikacji
Treść zachowana z obecnego źródła. Publikacja dokumentacji nie oznacza ponownego potwierdzenia wszystkich komend, przykładów i deklaracji możliwości.
Poziom: średniozaawansowany i ekspert. To referencja dla integracji, Studio, skryptów automatyzujących i diagnozy artefaktów.
Pełny wynik maszynowy budowania otrzymasz poleceniem:
junexis build --json --output-schema 2.0
Powiązanie plików
flowchart TD
RESPONSE["Odpowiedź build<br/>schemaVersion 2.0"] --> BUNDLE["out/junexis.bundle.json<br/>schemat 1.0"]
RESPONSE --> INVENTORY["out/junexis.artifacts.json<br/>schemat 1.0"]
RESPONSE --> DEBUG["out/debug/junexis.debug.toml"]
RESPONSE --> ANALYSIS["out/analysis/junexis.analysis.json<br/>schemat 1.1"]
RESPONSE --> RECEIPT[".junexis/state/.../latest-build.json<br/>schemat 1.0"]
BUNDLE --> INVENTORY
BUNDLE --> DEBUG
BUNDLE --> ANALYSIS
RECEIPT --> BUNDLE
RECEIPT --> INVENTORY
RECEIPT --> DEBUG
RECEIPT --> ANALYSIS
Wspólny buildId wiąże artefakty i analizę jednego poprawnego budowania.
Jest 64-znakowym skrótem SHA-256 wyliczanym z wygenerowanych plików i
zbudowanych środowisk.
Odpowiedź build, schemat 2.0
| Pole | Znaczenie |
|---|---|
schemaVersion |
wersja odpowiedzi; tutaj 2.0 |
command, success, durationMs |
operacja, wynik i czas wykonania |
inputFile |
wejście przekazane do polecenia |
diagnostics |
ustrukturyzowane błędy i ostrzeżenia |
mode |
project albo file |
projectRoot, entryFile, outputRoot |
bezwzględne ścieżki rozwiązanego wejścia i wyniku |
buildId |
tożsamość budowania albo null, jeśli nie została ustalona |
targets |
efektywny zestaw środowisk wyniku |
requestedTargets |
środowiska zażądane przez użytkownika lub manifest |
applicableTargets |
środowiska mające wykonywalne zadania w źródle |
builtTargets |
środowiska, dla których powstały artefakty |
targetSelectionSource |
źródło wyboru środowisk |
bundleManifest |
ścieżka do junexis.bundle.json |
artifactManifest |
ścieżka do junexis.artifacts.json |
debugManifest |
ścieżka do manifestu debugowania |
analysisSnapshot |
ścieżka do zapisu analizy |
latestBuildReceipt |
ścieżka do trwałego potwierdzenia sukcesu |
Pola wskazujące artefakty mogą mieć wartość null, gdy budowanie kończy się
przed ich utworzeniem. Przy błędzie latestBuildReceipt ma wartość null.
Manifest paczki analitycznej
out/junexis.bundle.json opisuje wynik jednego budowania: jego buildId, tryb,
projekt, plik wejściowy, trzy zestawy środowisk, źródło wyboru oraz względne
ścieżki do manifestu artefaktów, map debugowania i analizy.
Nie jest to jeszcze archiwum System Bundle przeznaczone do wdrożenia. Paczkę
wdrożeniową tworzą polecenia package albo bundle create.
Manifest artefaktów
out/junexis.artifacts.json zawiera buildId i listę artifacts. Każdy wpis
ma następujące pola:
| Pole | Znaczenie |
|---|---|
path |
ścieżka względem katalogu wyniku |
target |
środowisko albo analysis |
kind |
rodzaj, na przykład source, configuration, schema |
ownership |
generated albo user-overlay |
sha256 |
skrót zawartości pliku |
Automatyzacja powinna weryfikować skrót przed użyciem pliku poza zaufanym katalogiem budowania.
Stan ostatniego poprawnego budowania
Potwierdzenie latest-build.json jest zapisywane atomowo dopiero po sukcesie:
| Tryb | Ścieżka |
|---|---|
| projekt | .junexis/state/latest-build.json |
| pojedynczy plik | .junexis/state/<nazwa-pliku>/latest-build.json |
Zawiera schemaVersion, buildId, mode, projectRoot, entryFile,
outputRoot, targets i bezwzględne ścieżki do czterech plików wyniku.
Ścieżki muszą pozostawać we właściwym katalogu projektu lub wyniku.
Nieudane kolejne budowanie nie zastępuje poprzedniego poprawnego
potwierdzenia. Konsument powinien jednak sprawdzić zgodność buildId i skrótów,
zamiast zakładać, że poprzedni wynik odpowiada aktualnemu źródłu.
Minimalne reguły dla integracji
- Sprawdź
successischemaVersionodpowiedzi. - Nie utożsamiaj
requestedTargets,applicableTargetsibuiltTargets. - Powiąż pliki przez
buildId. - Zweryfikuj
sha256przed pakowaniem lub wdrożeniem. - Nie zapisuj własnego stanu w
out/ani.junexis/state/.
Przebieg całego procesu opisuje architektura budowania, a opcje polecenia są w katalogu CLI.