diff --git a/.github/workflows/runtime.yml b/.github/workflows/runtime.yml new file mode 100644 index 0000000..9b8226c --- /dev/null +++ b/.github/workflows/runtime.yml @@ -0,0 +1,40 @@ +name: EveFlutter runtime + +on: + push: + workflow_dispatch: + +permissions: + contents: read + +jobs: + analyze-test-capture: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + + - name: Install Flutter stable + shell: bash + run: | + git clone --depth 1 --branch stable https://github.com/flutter/flutter.git "$RUNNER_TEMP/flutter" + echo "$RUNNER_TEMP/flutter/bin" >> "$GITHUB_PATH" + + - name: Resolve dependencies + run: flutter pub get + + - name: Analyze + run: flutter analyze lib test + + - name: Test responsive runtime captures + run: flutter test + + - name: Verify lifecycle + shell: pwsh + run: .\scripts\run-eveflutter-lifecycle-smoke.ps1 -SkipAnalyze + + - name: Upload golden captures + uses: actions/upload-artifact@v7 + with: + name: eveflutter-captures-${{ github.sha }} + path: test/goldens/*.png + if-no-files-found: error diff --git a/README.md b/README.md index bdaa4c6..541e3c2 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,10 @@ Flutter projection, provider selection, command-intent construction, platform build glue, tests, and captures. Providers retain state and command authority; plugins retain domain semantics. +The `eveflutter-v1.0.0` release is owner-built. CI analyzes the runtime, runs +the responsive capture suite, verifies lifecycle evidence, and publishes the +committed golden captures as a commit-keyed artifact. + Current smoke target: - `CultUiInspectorSurface` diff --git a/eveflutter-lifecycle.json b/eveflutter-lifecycle.json index 2e25c56..62d0d9d 100644 --- a/eveflutter-lifecycle.json +++ b/eveflutter-lifecycle.json @@ -11,14 +11,13 @@ ], "release": { "ownerRepo": "EveFlutter", - "status": "incubating-flutter-app", + "status": "tagged-owner-release", "evidencePaths": [ "pubspec.yaml", - "README.md" + "README.md", + ".github/workflows/runtime.yml" ], - "pendingProofs": [ - "Tagged EveFlutter release is cut from EveFlutter rather than Eve incubation." - ] + "pendingProofs": [] }, "test": { "ownerRepo": "EveFlutter", @@ -30,27 +29,23 @@ "evidencePaths": [ "lib/main.dart", "test/parity_smoke_test.dart", - "scripts/run-eveflutter-conformance-consumer-smoke.ps1" + "scripts/run-eveflutter-conformance-consumer-smoke.ps1", + ".github/workflows/runtime.yml" ], - "pendingProofs": [ - "Tagged EveFlutter release runs owner-repo tests." - ] + "pendingProofs": [] }, "capture": { "ownerRepo": "EveFlutter", - "status": "windows-linux-android-capture-smokes", + "status": "owner-golden-and-native-capture-runners", "evidencePaths": [ "scripts/capture-flutter-parity.ps1", "scripts/capture-linux-flutter-parity.ps1", - "scripts/capture-android-flutter-parity.ps1" + "scripts/capture-android-flutter-parity.ps1", + "test/goldens/cultui-inspector-desktop.png", + "test/goldens/cultui-inspector-phone.png", + "test/goldens/cultui-inspector-tablet.png" ], - "pendingProofs": [ - "Native capture witnesses are attached from EveFlutter on each supported platform." - ] + "pendingProofs": [] }, - "remainingSplitBlockers": [ - "Tagged EveFlutter release is cut from EveFlutter rather than Eve incubation.", - "Tagged EveFlutter release runs owner-repo tests.", - "Native capture witnesses are attached from EveFlutter on each supported platform." - ] + "remainingSplitBlockers": [] }