Release Workflow
Zammad-AI uses semantic release to create version tags, and each tag push immediately triggers the Docker image release.
Semantic release
zammad-ai-workflowandzammad-ai-indexboth usepython-semantic-releaseonmain.- Conventional commits drive the version bump.
- Examples:
fix:usually creates a patch release, for examplefix: handle missing ticket metadata.feat:usually creates a minor release, for examplefeat: add reply draft preview.feat!:or a commit with aBREAKING CHANGE:footer usually creates a major release.- Non-user-facing changes like
docs:orchore:typically do not create a release by themselves.
- A release commit updates the package version and creates a tag in the form
zammad-ai-workflow-{version}orzammad-ai-index-{version}. - The release job only runs when the corresponding service directory changes, which keeps version bumps scoped to that service.
Docker release
- Tag pushes matching
zammad-ai-workflow-*orzammad-ai-index-*trigger the Docker release workflows immediately. - In practice, semantic release creates the tag and that tag push starts the Docker build and publish step.
- The workflows build the service image from the matching directory and push it to GitHub Container Registry.
- Each image is published with both the version tag and
latest. - Manual dispatch is also supported if you need to rebuild a specific tag.
What to expect
- Merge the service change to
main. - Let semantic release create the version tag.
- Let the Docker workflow build and publish the image for that tag.
This keeps code releases and container releases aligned while still allowing the two services to ship on their own cadence.