2.2 KiB
2.2 KiB
CI Smoke: Phase-6
Workflows
.github/workflows/phase6-smoke.ymlworkflow_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 Node1deploy-node1deploy-node1-runtime
.gitea/workflows/phase6-smoke.ymlworkflow_dispatch: manual smoke run for Gitea Actions.workflow_run: auto-run after deploy workflows in Gitea.
Required Secrets
NODA1_SSH_HOSTNODA1_SSH_USER(optional, defaults torootif empty)NODA1_SSH_KEY
Manual Run
- Open Actions (
GitHuborGitea) ->phase6-smoke. - Click
Run workflow/Run. - Optionally override
ssh_hostandssh_user. - Run and wait for the
phase6-smokejob 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_callfrom deploy workflow and setneeds. In Gitea, use same-workflowneedsgate (orworkflow_runfrom deploy workflow) becauseworkflow_callsupport 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-logsartifact includes:phase6-smoke.log- per-attempt logs (
phase6-smoke-attempt1.log,phase6-smoke-attempt2.logwhen retry happened)
Troubleshooting
Missing SSH host: addNODA1_SSH_HOSTsecret or passssh_hostinput.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-daarionstate on NODA1.