Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
9dc0e29
test(e2e): migrate test-snapshot-commands.sh to vitest
jyaunches Jun 12, 2026
0de8593
test(e2e): add snapshot commands vitest coverage
jyaunches Jun 12, 2026
b29f4e2
test(e2e): guard snapshot workflow boundary
jyaunches Jun 12, 2026
9790bef
test(e2e): handle transient snapshot provider validation
jyaunches Jun 12, 2026
ea9c0cd
test(e2e): validate snapshot sandbox cleanup path
jyaunches Jun 12, 2026
6062ae6
test(e2e): avoid multiline snapshot exec args
jyaunches Jun 12, 2026
65fb89c
ci(e2e): isolate snapshot Docker auth
jyaunches Jun 12, 2026
63502fd
test(e2e): force fresh snapshot install
jyaunches Jun 12, 2026
a286b75
test(e2e): cover snapshot secret placement
jyaunches Jun 12, 2026
5f5f362
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
jyaunches Jun 12, 2026
43024ff
test(e2e): fix workflow support test timeout
jyaunches Jun 12, 2026
ff0bdad
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
jyaunches Jun 13, 2026
7a6cc40
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
cv Jun 13, 2026
7d675f5
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
jyaunches Jun 13, 2026
873314f
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
cv Jun 13, 2026
32b4f59
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
cv Jun 13, 2026
4ae1428
test(e2e): relax workflow inventory support timeout
cv Jun 13, 2026
1447ea0
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
cv Jun 13, 2026
362007e
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
jyaunches Jun 13, 2026
e33db43
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
jyaunches Jun 13, 2026
a46ad90
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
jyaunches Jun 13, 2026
c3355fa
Merge remote-tracking branch 'origin/main' into e2e-migrate/test-snap…
cv Jun 16, 2026
78a3d66
test(e2e): address snapshot workflow review
cv Jun 16, 2026
6a1e507
test(e2e): fix snapshot workflow test typing
cv Jun 16, 2026
fc379a7
test(e2e): narrow snapshot credential leak scan
cv Jun 16, 2026
465d353
test(e2e): treat env names as leaks only when assigned
cv Jun 16, 2026
2305e3f
test(e2e): avoid false positives on OpenClaw config metadata
cv Jun 16, 2026
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
89 changes: 89 additions & 0 deletions .github/workflows/e2e-vitest-scenarios.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2179,6 +2179,94 @@ jobs:
docker logout docker.io || true
rm -rf "${DOCKER_CONFIG}"

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

- name: Configure isolated Docker auth directory
run: echo "DOCKER_CONFIG=${RUNNER_TEMP}/docker-config-snapshot-commands" >> "$GITHUB_ENV"

- name: Authenticate to Docker Hub
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
shell: bash
run: |
set -euo pipefail
if [[ -z "${DOCKERHUB_USERNAME}" || -z "${DOCKERHUB_TOKEN}" ]]; then
echo "::notice::Docker Hub credentials not configured; continuing with anonymous pulls."
exit 0
fi
mkdir -p "${DOCKER_CONFIG}"
chmod 700 "${DOCKER_CONFIG}"
login_succeeded=0
for attempt in 1 2 3; do
if echo "${DOCKERHUB_TOKEN}" | timeout 30s docker login docker.io --username "${DOCKERHUB_USERNAME}" --password-stdin; then
login_succeeded=1
break
fi
if [[ "$attempt" -lt 3 ]]; then
echo "::warning::Docker Hub login attempt ${attempt} failed; retrying."
sleep 5
fi
done
if [[ "$login_succeeded" -ne 1 ]]; then
echo "::warning::Docker Hub login failed after 3 attempts; continuing with anonymous pulls."
fi

- 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: Run snapshot commands live test
# Migrated from test/e2e/test-snapshot-commands.sh. Preserves the
# original ubuntu-latest + Docker/OpenShell + NVIDIA_API_KEY runner
# contract by driving install.sh and the real snapshot CLI lifecycle.
env:
NVIDIA_API_KEY: ${{ secrets.NVIDIA_API_KEY }}
run: |
set -euo pipefail
npx vitest run --project e2e-scenarios-live \
test/e2e-scenario/live/snapshot-commands.test.ts \
--silent=false --reporter=default

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

- name: Clean up Docker auth
if: always()
run: |
set -euo pipefail
docker logout docker.io || true
rm -rf "${DOCKER_CONFIG}"

sandbox-survival-vitest:
needs: generate-matrix
if: ${{ (inputs.jobs == '' && inputs.scenarios == '') || contains(format(',{0},', inputs.jobs), ',sandbox-survival-vitest,') || contains(format(',{0},', inputs.scenarios), ',sandbox-survival,') }}
Expand Down Expand Up @@ -2988,6 +3076,7 @@ jobs:
double-onboard-vitest,
model-router-provider-routed-inference-vitest,
sandbox-survival-vitest,
snapshot-commands-vitest,
gateway-drift-preflight-vitest,
openclaw-tui-chat-correlation-vitest,
gateway-guard-recovery,
Expand Down
Loading