This repository is a smoke-test workspace for the vig-os/devcontainer project.
Its purpose is to verify that the devcontainer template and the shipped CI workflow run successfully on real GitHub-hosted runners, not only in local or synthetic test environments.
The main vig-os/devcontainer repository publishes template files under
assets/workspace/, including a CI workflow
(assets/workspace/.github/workflows/ci.yml).
This repository provides a real target where that template can be bootstrapped and executed end-to-end so regressions are caught early, for example:
- broken GitHub Action pins
- runner environment changes
- dependency/tooling incompatibilities (for example
uvchanges)
This repository is intentionally minimal. It is used to:
- bootstrap a fresh workspace from the current devcontainer template
- run the shipped CI workflow on pull requests
- validate that expected jobs pass in GitHub Actions
- host CI wiring experiments such as
repository_dispatchlisteners
- Source of truth for template:
vig-os/devcontainer - Execution/verification target: this repository
Template or workflow changes should be made in
vig-os/devcontainer, then validated
here through a normal PR run.
For release validation, this repository receives repository_dispatch events
from vig-os/devcontainer and runs an automated deploy-and-test cycle:
- validate the dispatch payload and extract the tag
- deploy that tag with the online installer
- create branch
chore/deploy-<tag>, commit (always), and open a PR todev - CI workflow (
ci.yml) triggers on the PR - enable auto-merge once checks pass
This flow applies to both RC tags and final tags.
This repository is an unattended deploy-validation target, so a few OpenSSF
Scorecard checks are intentionally accepted as won't-fix here (they do not apply
to real downstream projects, which should keep branch protection and review).
The full security policy and project-general accepted findings live in
SECURITY.md; the smoke-test-specific ones are:
- BranchProtectionID / CodeReviewID: the automated deploy/release PRs are
merged without human review by design. Requiring approving reviews would stall
the
chore/deploy-<tag>auto-merge and defeat the purpose of the smoke test. - PinnedDependenciesID (
download-then-run): the installer in.github/workflows/repository-dispatch.ymlis fetched by immutable release tag, retried, and validated post-install. Thecurl | bashstep cannot be pinned by hash and is accepted.
These are recorded as dismissed (won't-fix) code-scanning alerts with a comment
referencing the upstream tracking issue. See vig-os/devcontainer #568.
There is no CHANGELOG in this repository.
Deployment history is tracked through:
- deploy PRs labeled
deploy - merge history on
dev - GitHub Actions runs attached to each deploy PR
If this repository is lost or needs to be rebuilt, recreate it from the
vig-os/devcontainer image/template:
-
Create a new empty repository (for example
vig-os/devcontainer-smoke-test). -
Clone it locally and run the installer with smoke-test assets enabled:
curl -sSf https://raw.githubusercontent.com/vig-os/devcontainer/main/install.sh | bash -s -- --smoke-test .
-
Commit the generated files and push to
main. -
Open a PR and confirm the shipped CI workflow passes:
.github/workflows/ci.yml
-
Verify
.github/workflows/repository-dispatch.ymlexists and listens forrepository_dispatchevents.