0
0
Fork
You've already forked sharedinbox
0

ci: automate dev container build via devcontainer.json + workflow #553

Merged
guettli merged 1 commit from issue-552-devcontainer-ci into main 2026年06月09日 21:31:48 +02:00
Collaborator
Copy link

Closes #552

Summary

  • Add .devcontainer/devcontainer.json pointing at ../Dockerfile.dev so VS Code / Codespaces / any devcontainer-aware tool can build the dev environment directly from source.
  • Add .forgejo/workflows/publish-dev-container.yml that rebuilds Dockerfile.dev and pushes it to codeberg.org/guettli/sharedinbox-dev whenever Dockerfile.dev, the devcontainer config, or the workflow itself changes on main. The image is tagged both :latest and with the short commit SHA for pinnable references.
  • The workflow uses the built-in FORGEJO_TOKEN to log in to Codeberg's container registry — no extra secrets required.

Notes

  • No existing references to ghcr.io/guettli/sharedinbox-dev were found in the repo, so issue step 3 (updating image references) is a no-op here.
  • workflow_dispatch is also enabled so the image can be rebuilt manually if needed.

Verification

  • python3 -c "import json; json.load(...)" parses the devcontainer config.
  • python3 -c "import yaml; yaml.safe_load(...)" parses the workflow.
  • Triggers (paths filter) match the source files the issue identifies as drift risks.
Closes #552 ## Summary - Add `.devcontainer/devcontainer.json` pointing at `../Dockerfile.dev` so VS Code / Codespaces / any devcontainer-aware tool can build the dev environment directly from source. - Add `.forgejo/workflows/publish-dev-container.yml` that rebuilds `Dockerfile.dev` and pushes it to `codeberg.org/guettli/sharedinbox-dev` whenever `Dockerfile.dev`, the devcontainer config, or the workflow itself changes on `main`. The image is tagged both `:latest` and with the short commit SHA for pinnable references. - The workflow uses the built-in `FORGEJO_TOKEN` to log in to Codeberg's container registry — no extra secrets required. ## Notes - No existing references to `ghcr.io/guettli/sharedinbox-dev` were found in the repo, so issue step 3 (updating image references) is a no-op here. - `workflow_dispatch` is also enabled so the image can be rebuilt manually if needed. ## Verification - `python3 -c "import json; json.load(...)"` parses the devcontainer config. - `python3 -c "import yaml; yaml.safe_load(...)"` parses the workflow. - Triggers (paths filter) match the source files the issue identifies as drift risks.
ci: automate dev container build via devcontainer.json + workflow
All checks were successful
CI / Full Project Check (pull_request) Successful in 2m58s
582bc439db
Adds .devcontainer/devcontainer.json that points to Dockerfile.dev so any
devcontainer-aware tool (VS Code, Codespaces, etc.) can build the local
dev environment directly from source.
Adds a Forgejo workflow that rebuilds and pushes the image to
codeberg.org/guettli/sharedinbox-dev (tagged both :latest and the short
commit SHA) whenever Dockerfile.dev, the devcontainer config, or the
workflow itself changes on main. This prevents the published image from
silently drifting from its source.
The workflow uses the built-in FORGEJO_TOKEN to log in to the Codeberg
container registry - no extra secrets needed.
Closes #552
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
guettli deleted branch issue-552-devcontainer-ci 2026年06月09日 21:31:49 +02:00
Sign in to join this conversation.
No reviewers
Labels
Clear labels
automerge
Eligible for automatic merge by CI
ci-failure
Issue opened by agentloop to track a failing CI workflow; used for deduplication.
do-not-merge
Plan PR — review only, do not merge.
loop
code
Add to run the built-in "code" prompt; override at prompts/code.md.
loop/code-ci-pending
Prompt "code" finished; waiting for the PR's CI to pass before advancing.
loop
code-done
Prompt "code" finished successfully.
loop/code-in-process
Agent for the "code" prompt is currently running on this issue.
loop/merge
Managed by agentloop
loop/merge-done
Managed by agentloop
loop/merge-in-process
Managed by agentloop
loop
plan
Add to run the built-in "plan" prompt; override at prompts/plan.md.
loop
plan-done
Prompt "plan" finished successfully.
loop/plan-in-process
Agent for the "plan" prompt is currently running on this issue.
NeedSupervisor
Issue escalated to a human supervisor; agentloop will skip it until cleared.
State
InProgress
State
Later
State
Planned
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
guettli/sharedinbox!553
Reference in a new issue
guettli/sharedinbox
No description provided.
Delete branch "issue-552-devcontainer-ci"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?