Skip to content
Latchkey

glab release create: Publish GitLab Releases in CI

glab release create publishes a release for a tag and can attach asset files and links non-interactively.

For automated release pipelines on GitLab, glab release create turns a tag into a published release with notes and downloadable assets in one call.

What it does

glab release create creates a GitLab release tied to a Git tag, with release notes from a flag or file, and optionally uploads asset files or registers external asset links. If the tag does not exist it can be created with --ref.

Common usage

Terminal
# release from an existing tag with notes and a binary asset
glab release create v1.2.0 ./dist/app-linux \
  --notes "Automated release"
# notes from a file, create the tag from a ref
glab release create v1.2.0 --notes-file CHANGELOG.md --ref "$CI_COMMIT_SHA"

Options

FlagWhat it does
<tag> [files...]Tag name followed by asset files to upload
--notes <text>Release notes inline
--notes-file <f>Read release notes from a file
--ref <ref>Create the tag at this ref if it does not exist
--assets-links <json>Register external asset links as JSON
--milestone <m>Associate one or more milestones

In CI

Pass notes via --notes or --notes-file so no editor opens. Use CI_COMMIT_TAG as the tag in tag pipelines. The token needs api scope; CI_JOB_TOKEN can create releases in the same project but not upload to arbitrary others.

Common errors in CI

"authentication required" means GITLAB_TOKEN is unset or invalid. "Release already exists" (409) means a release for that tag was already published; delete it or use glab release update. "404 Not Found" on --ref means the ref does not exist. "invalid tag name" means CI_COMMIT_TAG was empty because the job did not run on a tag.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →