ci: automated Docker Hub release pipeline (bump to 0.14.0) - #61
Merged
Conversation
Add .github/workflows/release.yml: on a v*.*.* tag, verify the tag matches the packaged version, run the pytest suite (Python 3.10-3.13), build and push a multi-arch (amd64 + arm64) image to Docker Hub as mrwadams/attackgen, then cut a GitHub Release with generated notes. Builds from the existing Dockerfile unchanged (its pinned base is a multi-arch OCI index). Bump version 0.13.1 -> 0.14.0 for the first automated release. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
.github/workflows/release.yml— an automated release pipeline that publishes a Docker image to Docker Hub whenever a version tag is pushed. Also bumps the packaged version0.13.1 → 0.14.0for the first automated release.How it works
Triggered on
v*.*.*tags. Four gated jobs:pyproject.tomlversionrequirements-dev.txt)linux/amd64,linux/arm64) from the existingDockerfile, pushmrwadams/attackgentagged{version}/{major}.{minor}/latestMirrors the STRIDE-GPT release pipeline, adapted to this repo (pip instead of
uv; no PyPI job — AttackGen is a Streamlit app). The pinned base image (python:3.12-slim@sha256:090ba77e…) is a multi-arch OCI index, so the arm64 build works with the Dockerfile unchanged.Prerequisites
Repo secrets
DOCKERHUB_USERNAME/DOCKERHUB_TOKEN— already configured.Releasing after merge
Once this lands on
main:That fires the pipeline and publishes
mrwadams/attackgen:0.14.0,:0.14, and:latest(amd64 + arm64).🤖 Generated with Claude Code