-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
area:ciCI/CD, GitHub Actions, workflowsCI/CD, GitHub Actions, workflowsarea:testingTest infrastructure, BATS, pytestTest infrastructure, BATS, pytesteffort:medium1-4 hours1-4 hoursfeatureNew feature or requestNew feature or requestsemver:minorNew feature, backward-compatibleNew feature, backward-compatible
Milestone
Description
Description
Refurbish repository-dispatch.yml in the smoke-test repo so that each RC publish triggers a full deploy-test-report cycle: the workflow fetches the RC image, re-deploys the workspace via install.sh, commits the changes via a PR, lets PR-triggered CI validate the deployment, and auto-merges on success. Drop CHANGELOG from the smoke-test repo entirely.
Problem Statement
The current repository-dispatch.yml (#169) validates the dispatch payload and calls ci.yml / ci-container.yml via workflow_call, but:
- No deployment -- it runs CI against whatever code is already in the repo. If the RC ships updated template files, they are never deployed or tested.
- No commit trail -- nothing records which RC was tested or what changed.
- No tracking mechanism -- CHANGELOG doesn't make sense for a bot-only repo that receives only automated RC deployments.
- Bug -- line 82 references
needs.ci.container.result(typo: should beneeds.ci-container.result).
Proposed Solution
Workflow flow:
repository_dispatch (rc_tag)
│
├── validate: extract & validate rc_tag
│
├── deploy:
│ ├── close stale RC PRs
│ ├── install.sh --version <rc_tag> --smoke-test --force .
│ ├── write RC tag to .vig-os (from #257)
│ ├── detect changes (git diff)
│ ├── if changes: create branch rc/<rc_tag>, commit, push, create PR
│ └── enable auto-merge
│
├── ci-container: workflow_call with explicit rc_tag
│ (PR-triggered ci.yml handles bare-runner validation)
│
└── summary: report results
Design decisions:
- PR-based deploy -- each RC deployment creates a branch (
rc/<rc-tag>) and PR tomain. CI triggers naturally on the PR. Auto-merge on success. PR history = audit trail. - No CHANGELOG -- commit history is the log. Each merged PR shows which RC was deployed. GitHub Actions history shows test results. If queryable tags are wanted later, the workflow can tag successful merges.
- Inline
ci-containerkept -- GitHub Actionscontainer:directive evaluates at workflow parse time, so PR-triggeredci-container.ymlcan't read.vig-osdynamically. The inlineworkflow_callwith explicit RC tag is the pragmatic solution. - Stale PR cleanup -- before creating a new RC PR, close any open
rc-deploylabeled PRs.
Files to change:
- Rewrite:
assets/smoke-test/.github/workflows/repository-dispatch.yml-- add deploy job, PR creation, auto-merge, fix typo - Update:
assets/smoke-test/README.md-- document new flow, no CHANGELOG, how to check status
Alternatives Considered
- Direct commit to main -- simpler but less traceable. PR-based flow was chosen for audit trail and CI integration.
- Inline CI via
workflow_callonly --workflow_calluses the caller's ref, not the newly deployed code. PR-triggered CI tests the actual deployed files. - CHANGELOG / deployment log file -- adds maintenance burden for a bot-only repo. Commit + PR history provides the same information with zero overhead.
Additional Context
- Depends on [FEATURE] Root .vig-os config file as SSoT for devcontainer version #257 (
.vig-osconfig file) for the deploy step that writes the RC tag. - Related to [FEATURE] Smoke-test repository to validate shipped CI/CD workflows #169 (Phase 1 smoke-test setup). This issue covers the workflow refurbishment beyond basic dispatch wiring.
install.shsupports--version VERto pull a specific image tag -- confirmed in the existing codebase.- Ubuntu runners have Docker, which
install.shneeds to pull and run the image.
Impact
- Who benefits: Release operators. RC testing becomes fully automated with a clear pass/fail signal (merged PR = passed).
- Compatibility: Backward compatible. Only changes the smoke-test repo workflow and assets.
Changelog Category
Added
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:ciCI/CD, GitHub Actions, workflowsCI/CD, GitHub Actions, workflowsarea:testingTest infrastructure, BATS, pytestTest infrastructure, BATS, pytesteffort:medium1-4 hours1-4 hoursfeatureNew feature or requestNew feature or requestsemver:minorNew feature, backward-compatibleNew feature, backward-compatible