Deployment

Current release and deployment workflow for Divekit CLI.

This page reflects the current release flow in the repository. Old deploy.sh examples and GIF-based demos are obsolete.

Release Trigger

Releases are tag-driven. A release starts when a Git tag is pushed (for example v2.3.1 or v2.4.0-rc.1).

Use the helper script:

./scripts/dev/release-tag.sh

The script checks for a clean working tree, fetches tags, proposes version increments, and pushes v<version>.

Manual alternative:

git tag v2.3.1
git push origin v2.3.1

CI Pipeline Behavior

In .gitlab-ci.yml the release flow is:

  1. release:tag runs for tag pipelines and calls goreleaser release --clean.
  2. Artifacts are published from dist/.
  3. docs:trigger runs after release:tag only for strict SemVer tags (vX.Y.Z).

That means pre-release tags (for example v2.4.0-rc.1) create release artifacts, but do not trigger the docs pipeline.

Local Build vs Release

make build-release (scripts/dev/build.sh -a -r) creates local release-like binaries. It does not publish artifacts and does not replace the tag-based CI release.

Pre-Release Checklist

  • make check passes.
  • User-facing docs are updated.
  • RELEASE_NOTES.md is updated if needed.
  • Working tree is clean before tagging.

Tag Rollback

If a wrong tag was pushed:

git tag -d v2.3.1
git push origin :refs/tags/v2.3.1

Then create and push the corrected tag.