Files
sharedinbox/.forgejo/workflows/publish-dev-container.yml
T
Thomas GüttlerandClaude Opus 4.7 582bc439db ci: automate dev container build via devcontainer.json + workflow
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>
2026-06-09 14:25:35 +00:00

45 lines
1.1 KiB
YAML

name: Publish Dev Container
on:
push:
branches: [main]
paths:
- 'Dockerfile.dev'
- '.devcontainer/devcontainer.json'
- '.forgejo/workflows/publish-dev-container.yml'
workflow_dispatch:
jobs:
publish:
name: Build & Push sharedinbox-dev
runs-on: ubuntu-latest
timeout-minutes: 30
env:
REGISTRY: codeberg.org
IMAGE: codeberg.org/guettli/sharedinbox-dev
steps:
- uses: actions/checkout@v4
- name: Log in to Codeberg container registry
env:
FORGEJO_TOKEN: ${{ github.token }}
run: |
echo "$FORGEJO_TOKEN" \
| docker login "$REGISTRY" -u "${{ github.actor }}" --password-stdin
- name: Build image
run: |
SHORT_SHA="${GITHUB_SHA:0:7}"
docker build \
-t "$IMAGE:latest" \
-t "$IMAGE:$SHORT_SHA" \
-f Dockerfile.dev \
.
- name: Push image
run: |
SHORT_SHA="${GITHUB_SHA:0:7}"
docker push "$IMAGE:latest"
docker push "$IMAGE:$SHORT_SHA"