Przejdź do treści

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

  1. Sprawdź success i schemaVersion odpowiedzi.
  2. Nie utożsamiaj requestedTargets, applicableTargets i builtTargets.
  3. Powiąż pliki przez buildId.
  4. Zweryfikuj sha256 przed pakowaniem lub wdrożeniem.
  5. Nie zapisuj własnego stanu w out/ ani .junexis/state/.

Przebieg całego procesu opisuje architektura budowania, a opcje polecenia są w katalogu CLI.