Files
microdao-daarion/docs/ops/ci_smoke.md

2.2 KiB

CI Smoke: Phase-6

Workflows

  • .github/workflows/phase6-smoke.yml
    • workflow_dispatch: manual smoke run on NODA1 via SSH.
    • workflow_call: reusable smoke step for deploy workflows (recommended for hard gate).
    • workflow_run: auto-run after successful deploy workflows:
      • Deploy Node1
      • deploy-node1
      • deploy-node1-runtime
  • .gitea/workflows/phase6-smoke.yml
    • workflow_dispatch: manual smoke run for Gitea Actions.
    • workflow_run: auto-run after deploy workflows in Gitea.

Required Secrets

  • NODA1_SSH_HOST
  • NODA1_SSH_USER (optional, defaults to root if empty)
  • NODA1_SSH_KEY

Manual Run

  1. Open Actions (GitHub or Gitea) -> phase6-smoke.
  2. Click Run workflow / Run.
  3. Optionally override ssh_host and ssh_user.
  4. Run and wait for the phase6-smoke job result.

On-Deploy Run

  • Triggered automatically only when configured deploy workflow finishes with success.
  • Job retries once on transient failures (SSH/network hiccups).
  • If smoke still fails, workflow is marked failed.
  • For strict deploy gating in the same pipeline, call this workflow via workflow_call from deploy workflow and set needs. In Gitea, use same-workflow needs gate (or workflow_run from deploy workflow) because workflow_call support depends on runner/version.

Example (.github/workflows/deploy-node1.yml):

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - run: echo "deploy..."

  smoke:
    needs: [deploy]
    uses: ./.github/workflows/phase6-smoke.yml
    secrets:
      NODA1_SSH_HOST: ${{ secrets.NODA1_SSH_HOST }}
      NODA1_SSH_USER: ${{ secrets.NODA1_SSH_USER }}
      NODA1_SSH_KEY: ${{ secrets.NODA1_SSH_KEY }}

Artifacts

  • phase6-smoke-logs artifact includes:
    • phase6-smoke.log
    • per-attempt logs (phase6-smoke-attempt1.log, phase6-smoke-attempt2.log when retry happened)

Troubleshooting

  • Missing SSH host: add NODA1_SSH_HOST secret or pass ssh_host input.
  • Missing secret NODA1_SSH_KEY: add deploy key secret.
  • SSH host key issues: workflow uses StrictHostKeyChecking=accept-new; if host changed, rotate known host entry and retry.
  • Remote smoke fail: open artifact logs and check /opt/microdao-daarion state on NODA1.