Skip to content

ci: add real Docker runtime smoke validation #26

ci: add real Docker runtime smoke validation

ci: add real Docker runtime smoke validation #26

name: Docker Runtime Smoke
on:
pull_request:
branches:
- main
paths:
- ".github/workflows/docker-build-ci.yml"
- "Dockerfile.demo"
- "docker-compose.demo.yml"
- "package.json"
- "package-lock.json"
- "backend/rust/**"
- "backend/python/**"
- "core/**"
- "configs/**"
- "features/**"
- "js-runner/**"
- "observability/**"
- "platform/**"
- "runtime/**"
- "storage/**"
- "src/**"
- "contract/**"
- "scripts/docker-runtime-smoke.*"
- "tests/runtime/dockerRuntimeSmokeValidator.test.mjs"
- "tests/runtime/test_docker_runtime_paths.py"
workflow_dispatch:
permissions:
contents: read
jobs:
docker-runtime-smoke:
name: Controlled-demo runtime smoke
runs-on: ubuntu-latest
timeout-minutes: 35
steps:
- name: Checkout pull request commit
uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Test smoke response validators
run: node --test tests/runtime/dockerRuntimeSmokeValidator.test.mjs
- name: Build and exercise controlled-demo runtime
env:
SMOKE_DIAGNOSTICS_DIR: ${{ runner.temp }}/omni-docker-smoke-diagnostics
run: bash scripts/docker-runtime-smoke.sh
- name: Upload sanitized failure diagnostics
if: failure()
uses: actions/upload-artifact@v6
with:
name: docker-runtime-smoke-diagnostics-${{ github.run_id }}
path: ${{ runner.temp }}/omni-docker-smoke-diagnostics
if-no-files-found: error
retention-days: 7