You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: integrate devcontainer into CI and setup GHCR pre-builds (#114)
## Overview
This PR integrates our Dev Container into the CI/CD pipeline and sets up
automated environment pre-builds.
As discussed in #113, reusing the dev container environment would be
great for CI. This is my first attempt at implementing this workflow.
Reference: <https://github.com/devcontainers/ci>
### Changes
- **Dev Container CI**: Integrated `devcontainers/ci` into the main
workflow. Tests now run in a 1:1 environment compared to our local
setup.
- **Pre-build Workflow**: Added a workflow to build and push the
devcontainer image to GHCR. This caches our heavy environment to keep CI
fast.
- *Note:* After merging, the **Pre-build Dev Container** workflow should
be manually triggered once on `main` to populate the registry.
- **Formatting & Quality**:
- Added `cargo fmt --check` as a mandatory CI step to maintain code
style.
- Applied `cargo fmt` to to fix the existing inconsistencies.
- **Automation**: Updated Dependabot to track `cargo` (with PR
grouping), `github-actions`, and `docker` updates.
### How to verify
1. **CI Status**: The "Build and Test" workflow should pass (green) as
the formatting issues have been fixed in this PR.
2. **Action Logs**: Check the "Run CI in Dev Container" step to see the
grouped logs for Fmt, Build, Test, and Clippy.
3. **Pre-build**: Confirm the new workflow is available under the
Actions tab for manual dispatch.
---
### Post-merge Configuration
Once this PR is merged and the first image is pushed:
1. Go to the **Packages** section on the repository home page.
2. Open the `devcontainer` package settings.
3. Ensure **Package Visibility** is set to **Public** (required for the
CI to pull the image in PRs from forks).
4. (Optional) Check the **Packages** box in the "Include in the home
page" settings (as shown in the attached screenshot) to make the image
visible on the main page.
<img width="264" height="149" alt="image"
src="https://github.com/user-attachments/assets/6e64234f-124e-4625-9f72-8b8f44ec09ba"
/>
0 commit comments