Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/workflows/e2e-vitest-scenarios.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1817,6 +1817,56 @@ jobs:
docker logout docker.io || true
rm -rf "${DOCKER_CONFIG}"

gateway-drift-preflight-vitest:
needs: generate-matrix
if: ${{ (inputs.jobs == '' && inputs.scenarios == '') || contains(format(',{0},', inputs.jobs), ',gateway-drift-preflight-vitest,') || contains(format(',{0},', inputs.scenarios), ',gateway-drift-preflight,') }}
runs-on: ubuntu-latest
timeout-minutes: 15
env:
FREE_STANDING_VITEST_JOB: "1"
FREE_STANDING_SCENARIO_ID: "gateway-drift-preflight"
E2E_ARTIFACT_DIR: ${{ github.workspace }}/e2e-artifacts/vitest/gateway-drift-preflight
NEMOCLAW_RUN_E2E_SCENARIOS: "1"
NEMOCLAW_NON_INTERACTIVE: "1"
NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1"
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false

- name: Set up Node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.0.0
with:
node-version: 22
cache: npm

- name: Install root dependencies
run: npm ci --ignore-scripts

- name: Build CLI
run: npm run build:cli

- name: Run gateway drift preflight Vitest test
# Migrated from test/e2e/test-gateway-drift-preflight.sh. This keeps
# the real repo CLI, PATH-resolved openshell/docker shims, host-process
# marker/PID probes, and process exit behavior while avoiding live
# Docker/OpenShell mutation.
run: |
set -euo pipefail
npx vitest run --project cli \
test/gateway-drift-preflight.test.ts \
--silent=false --reporter=default

- name: Upload gateway drift preflight artifacts
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: e2e-vitest-scenarios-gateway-drift-preflight
path: e2e-artifacts/vitest/gateway-drift-preflight/
include-hidden-files: false
if-no-files-found: ignore
retention-days: 14

# Focused coverage slice for the #2603/#3145 OpenClaw websocket
# protocol/history contract. The retained legacy bash lane remains the
# source for full closeout until a later PR proves replacement and deletes it.
Expand Down Expand Up @@ -2020,6 +2070,7 @@ jobs:
double-onboard-vitest,
model-router-provider-routed-inference-vitest,
sandbox-survival-vitest,
gateway-drift-preflight-vitest,
openclaw-tui-chat-correlation-vitest,
gateway-guard-recovery,
issue-4434-tui-unreachable-inference-vitest,
Expand Down
16 changes: 16 additions & 0 deletions test/e2e-scenario/support-tests/e2e-scenarios-workflow.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,22 @@ describe("e2e-vitest-scenarios workflow boundary", () => {
selectedFreeStandingJobs: ["model-router-provider-routed-inference-vitest"],
registryScenarios: [],
});
expect(
evaluateE2eVitestWorkflowDispatchSelectors({ scenarios: "gateway-drift-preflight" }),
).toMatchObject({
valid: true,
liveScenariosRuns: false,
selectedFreeStandingJobs: ["gateway-drift-preflight-vitest"],
registryScenarios: [],
});
expect(
evaluateE2eVitestWorkflowDispatchSelectors({ jobs: "gateway-drift-preflight-vitest" }),
).toMatchObject({
valid: true,
liveScenariosRuns: false,
selectedFreeStandingJobs: ["gateway-drift-preflight-vitest"],
registryScenarios: [],
});
});

it("derives the free-standing inventory from workflow job metadata", () => {
Expand Down
Loading
Loading