feat: 🐳 multi-stage Docker builds, immutable release pipeline, CHANGELOG automation#46
feat: 🐳 multi-stage Docker builds, immutable release pipeline, CHANGELOG automation#46
CHANGELOG automation#46Conversation
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
… upates Signed-off-by: lelia <lelia@socket.dev>
…ease workflow Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
|
one major thing missing here, is version bumping the |
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
…parate doc Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
…list Signed-off-by: lelia <lelia@socket.dev>
true, it's sort of a chicken-and-egg issue with the initial overhaul that this PR introduces. but the idea will be, once this is merged in and tested, that we create a second PR to actually switch everything over to the new |
I'v previously relied on automated versioning with conventional commit messaging (see example with to enforce using conventional commits:
|
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
got it, thanks for the example, I've incorporated this approach into |
CHANGELOG automationCHANGELOG automation
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
Signed-off-by: lelia <lelia@socket.dev>
… Unreleased for PR Signed-off-by: lelia <lelia@socket.dev>
Summary
Overhauls the Docker build and release infrastructure for
socket-basics: multi-stage Dockerfiles with pinned binary deps, a full GHCR + Docker Hub publish pipeline with fail-fast testing, and automatedCHANGELOG+ release notes. Establishes an opinionated immutable release posture — no:latestor floatingv2tag — with SHA pinning + Dependabot as the recommended consumption pattern.Adds
Dockerfileandapp_tests/Dockerfile— Trivy, TruffleHog, Go, uv pulledvia named
FROMstages (Dependabot-trackable);python:3.12-slimbase; BuildKit cache mountspublish-docker.yml— build → smoke test → integration test → push to GHCR + Docker Hub→ GitHub Release + CHANGELOG update; fail-fast, per-job least-privilege permissions
docs/releasing.md— maintainer release process guide including immutable tag setup.github/PULL_REQUEST_TEMPLATE.md— release checklist baked into every PRcommit-lint.yml+.commitlintrc.yml— Conventional Commits enforcement on PR titlesCHANGELOG.mdfrom1.0.2; automated update on every release viascripts/update_changelog.pyChanges
v-prefix (v2.0.0) with immutable-only releases;:latestandfloating major tags (
v2) intentionally not publisheddocs/github-action.mdpinning strategies rewritten — SHA + Dependabot leads,includes security philosophy section explaining why we're opinionated
python-tests.ymlgains two CI assertions: version file sync +action.ymlimageref matches
pyproject.toml(auto-activates once pre-built image switch lands)smoke-test.ymlandpython-tests.ymlsimplified to flat jobs (no matrix overheadwhile only one Docker image is in CI scope)
Removes
.hooks/version-check.py+.claude/commands/bump-version.md— auto-bump-on-commitantipattern; replaced by the CI assertions above
version.py/pyproject.tomlaction.ymlswitch fromimage: Dockerfiletoimage: docker://ghcr.io/socketdev/socket-basics:2.0.0